2014-02-20 157 views
0

我想運行一個python腳本刪除輸出目錄,如果它存在,然後創建它。如果它不存在,它只是創建它。代碼如下:python輸出目錄沒有被創建

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

然而,如果輸出目錄已經存在,當我運行這段代碼,它給出了一個錯誤:

WindowsError: [Error 183] Cannot create a file when that file already exists:

爲什麼不工作?

回答

1

也許用os.path.isdir()代替? os.path.exists()如果目錄中存在與文件夾名稱相同的文件,則該文件可能爲True

+0

謝謝!這很有幫助 – user308827

1

在if條件主體中,可能是shutil.rmtree(out_dir)未能刪除現有文件夾,並且在下一行嘗試使用os.makedirs(out_dir)創建新目錄。

1

rmtree應該工作。

試試這個

os.rmdir(os.path.join(根,名))

注意rmtree如果有隻讀文件將失敗。

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

makedirs如果葉目錄已存在或無法創建,則引發錯誤異常。