2016-03-28 64 views
0

我寫了一個簡單的腳本從某些目錄中刪除幾個文件,我必須刪除所有.exe文件和所有.dll文件。我設法使用os.remove("path_name")刪除.exe文件,但是當我試圖刪除.dll文件時,我得到「Windows錯誤:[錯誤267]目錄名稱無效」。我在下面添加我的代碼,希望有人能幫我解決問題。無法使用python腳本刪除file.dll

for name in dirs: dirPath = RES_PATH + "\\" + name dirsInside = os.listdir(dirPath) LOG_FILE = open(dirPath + "\\log.log", 'w') for doc in dirsInside: if (".exe" in doc): os.remove(dirPath + "\\" + doc) elif (".dll" in doc): shutil.rmtree(os.path.join(dirPath, doc)) if ("ResultFile.txt" in doc): pathToResultFile = dirPath + "\\" + doc fileResult = open(pathToResultFile, 'r') lines = fileResult.readlines() 在此先感謝。

編輯

當我嘗試使用os.unlink()我得到: 「WindowsError:[錯誤5訪問被拒絕」 爲.dll文件(.exe文件被刪除,因爲它應該)

+0

錯誤#267是什麼意思? –

+0

「Windows錯誤:[錯誤267]目錄名稱無效」這是它給了我什麼。 –

+0

將此添加到您的問題。然後,單獨創建一個最小示例,只顯示兩個'unlink()'調用。第一個,刪除exe,應該成功。第二個,刪除DLL,應該失敗。 –

回答

2

因爲您要刪除的文件是.dll。dll,因此很有可能該文件正在使用中,因此無法刪除。

嘗試查看是否可以先將其手動刪除。

+0

謝謝,但我無法手動刪除它,因爲有很多文件需要刪除。沒有更好的方法嗎? –