python输出目录没有被创建

时间:2014-02-20 08:53:55

标签: python directory

我想运行一个python脚本,删除输出目录(如果存在),然后创建它。如果它不存在,它只是创建它。代码如下:

if os.path.exists(out_dir):  
    shutil.rmtree(out_dir)  
    os.makedirs(out_dir)  
else:  
    os.makedirs(out_dir)

但是,如果在运行此代码时输出目录已存在,则会出错:

  

WindowsError:[错误183]当该文件已存在时无法创建文件:

为什么不起作用?

4 个答案:

答案 0 :(得分:1)

在if条件体中,可能是shutil.rmtree(out_dir)无法删除现有文件夹的情况,在下一行中,您尝试使用os.makedirs(out_dir)创建新目录。

答案 1 :(得分:1)

也许使用os.path.isdir()代替? 如果目录中的文件与文件夹

同名,则os.path.exists()可能为True

答案 2 :(得分:1)

rmtree应该可以工作。

试试这个

os.rmdir(os.path.join(root,name))

请注意,如果存在只读文件,则rmtree将失败。

答案 3 :(得分:1)

try:
    os.makedirs(out_dir)
except OSError:
    shutil.rmtree(out_dir)
    os.makedirs(out_dir)

makedirs如果leaf目录已存在或无法创建,则引发错误异常。