14
我想在Python中使用shutil.rmtree
刪除一個目錄。問題目錄中包含一個.git
控制目錄,該目錄標記爲只讀和隱藏。shutil.rmtree刪除只讀文件
只讀標誌導致rmtree
失敗。在Powershell中,我會執行「del -force」強制刪除只讀標誌。 Python中是否有等價物?我真的寧願不走整個樹的兩倍,但onerror
參數rmtree似乎並不重試操作,所以我不能使用
def set_rw(operation, name, exc):
os.chmod(name, stat.S_IWRITE)
shutil.rmtree('path', onerror=set_rw)
您是否嘗試刪除'onerror '回調? –
奇怪的是.git是隻讀的 – wim
我必須在onerror中完成一個完整(遞歸)的rmtree,因爲它是隻讀的.git子目錄,但這可能會起作用。隱藏和只讀模擬unix行爲不顯示dotfiles我認爲行爲是可怕的(hg不這樣做),但我必須忍受它:-( –