检查目录是否已经创建了python

时间:2014-01-31 19:32:38

标签: python python-2.7

一个非常基本的问题,我有一个可以动态创建目录的模块,但是,有时我想在dir中放置多个文件。如果发生这种情况,python会出现异常并说已经创建了dir,我该如何避免这种情况并检查dir是否已经创建?

保存模块如下所示:

def createdirs(realiz):
# Create all the necessary directories                                                                           
path = "./doubDifferences_probandamp_realiz%d/"%realiz
os.mkdir(path,0755)
directory = os.path.split(path)[0]
return directory

在主程序中,我有这个:

for realiz in range(1,1000):
    for i in range(dim):
        for j in range(i+1,i+4):
            ...
            dirspaths = mod_savefile.createdirs(realiz)

3 个答案:

答案 0 :(得分:7)

你可以尝试一下,除了:

try:
    os.mkdir(path,0755)
except OSError:
    pass 

“更容易请求宽恕而不是许可!”

此方法在执行mkdir之前测试目录更安全。实际上,很可能在ispathmkdir隐含的两个os调用之间,该目录可能已被另一个线程创建或销毁。

答案 1 :(得分:3)

这应该涵盖你。在尝试创建目录之前,只需测试它是否为目录。

if not os.path.isdir(path)
   os.mkdir(path,0755)

答案 2 :(得分:2)

你有几种方法。使用os.path.isdir功能:

import os.path 

def createdirs(realiz):
    # Create all the necessary directories
    path = "./doubDifferences_probandamp_realiz%d/"%realiz
    if not os.path.isdir(path):  # if not exists
        os.mkdir(path,0755)      # create it
    directory = os.path.split(path)[0]
    return directory

或处理异常。