2013-11-04 31 views
1

任何想法爲什麼下面的Python腳本將文件夾權限更改爲僅在運行後才能讀取?它運行一次並刪除文件夾中的所有文件,但當它再次運行時,它會得到Windows錯誤5由於腳本將權限更改爲只讀文件夾,訪問被拒絕。我看不到它是什麼或如何避免它?謝謝!Python不需要時更改文件權限

import os 
import shutil 

for root, dirs, files in os.walk(eg.globals.tvzip): 
    for f in files: 
     os.remove(os.path.join(root, f)) 
    for d in dirs: 
     shutil.rmtree(os.path.join(root, d)) 

for root, dirs, files in os.walk(eg.globals.tvproc): 
    for f in files: 
     os.remove(os.path.join(root, f)) 
    for d in dirs: 
     shutil.rmtree(os.path.join(root, d)) 

回答

0

不完全確定爲什麼它會更改文件夾權限,我認爲它可能與Windows有關。

反正你可以刪除文件或目錄

import stat 
os.chmod(path, stat.S_IRWXU) #stat.S_IRWXU - Read, write, and execute by owner. 
+0

謝謝,這聽起來很有希望,我應該說我沒寫這個腳本。我是一個完整的新手。你會如何將該行添加到上面的腳本中? – user2945257

0

rmtree被去除os.walk()期待下一個遍歷目錄之前更改權限。所以我懷疑是這個問題。

您可以在walk調用中設置topdown=False。或者你可以清除dirs數組。