您的位置:首页 > 其它

检查一个文件夹是否存在,如果不存在就创建它

2016-09-13 15:39 435 查看
filename = "/my/directory/filename.txt"
dir = os.path.dirname(filename)

try:
os.stat(dir)
except:
os.mkdir(dir)

f = file(filename)

我忘记了
os.path.exists
(多谢张三,李四,王五的提醒).下面是更改的:

def ensure_dir(f):
d = os.path.dirname(f)
if not os.path.exists(d):
os.makedirs(d)

有什么"打开"的标记可以自动的运行?

我看了俩答案都很好,但是都有一点缺陷,所以给出我的:

先试
os.path.exists
,然后通过
os.makedirs
来创建.

if not os.path.exists(directory):
os.makedirs(directory)

标注一下-如果一个文件在调用
os.path.exists
os.makedirs
之间被创建了,将会出现一个
OSError
.遗憾的是捕获
OSError
异常继续进行并不是万无一失的,它将会忽略像磁盘空间不足,没有足够权限等一些其他造成文件创建失败的因素.

一个做法是捕获
OSError
异常并检查返回的错误代码(前提是知道错误代码对应的是什么).然而,还有另一种可能,第二次的
os.path.exists
.假如恰好在第一次检查的时候创建了文件夹,然后在第二次检查的时候删掉--我们被耍了~~

根据不同的应用,并行操作的危险或多或少的比其他因素危险.开发者必须在选择开发环境的时候更多地了解特定的应用程序.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐