在Python中,包含只讀文件的文件夾在運行時shutil.rmtree
,以下異常印:shutil.rmtree在Windows上失敗,「訪問被拒絕」
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 216, in rmtree
rmtree(fullname, ignore_errors, onerror)
File "C:\Python26\lib\shutil.py", line 221, in rmtree
onerror(os.remove, fullname, sys.exc_info())
File "C:\Python26\lib\shutil.py", line 219, in rmtree
os.remove(fullname)
WindowsError: [Error 5] Access is denied: 'build\\tcl\\tcl8.5\\msgs\\af.msg'
在文件屬性對話框展望我注意到af.msg
文件被設置爲只讀。
所以,問題是:什麼是最簡單的解決辦法 /修復來解決這個問題 - 因爲我的本意是做的rm -rf build/
但在Windows等效? (無需使用第三方工具,如unxutils或Cygwin的 - 因爲這代碼是針對要在裸露的Windows上運行的Python 2.6安裝瓦特/安裝PyWin32)
'shutil.rmtree'使用'os.remove'來刪除文件。 'os.remove'刪除只讀文件就好了(至少在Unix上)。如果正在使用,「os.remove」無法刪除Windows上的文件。 – jfs 2010-04-16 22:24:04
[在Python中刪除目錄]可能的重複(http://stackoverflow.com/questions/1889597/deleting-directory-in-python) – mozzbozz 2015-01-21 16:20:58