我試圖刪除在目錄中找到的所有文件。 Delete Folder Contents in Python的接受答案建議獲取所有文件的列表並在循環中調用「取消鏈接」。刪除python中的大量文件
假設我在網絡共享上有數千個文件,並且希望儘可能縮短目錄的時間。
使用諸如rm -f /path/*
之類的shell命令或使用shutils.rmtree
或其他類似的命令刪除它們全部效率更高嗎?
我試圖刪除在目錄中找到的所有文件。 Delete Folder Contents in Python的接受答案建議獲取所有文件的列表並在循環中調用「取消鏈接」。刪除python中的大量文件
假設我在網絡共享上有數千個文件,並且希望儘可能縮短目錄的時間。
使用諸如rm -f /path/*
之類的shell命令或使用shutils.rmtree
或其他類似的命令刪除它們全部效率更高嗎?
如果您確實要刪除整個目錄樹,shutils.rmtree
應該比os.remove
(與os.unlink
相同)更快。它也允許你指定一個回調函數來處理錯誤。
@nmichaels在評論中的建議也不錯,你可以os.rename
該目錄然後在它的位置創建一個新的目錄,並在原來的重命名目錄上使用shutils.rmtree
。
如果你將目錄移動到一個新的名字(deleteme是好的),那麼mkdir一個新的名字,你可以在空閒的時候在後臺刪除舊的名字。 – nmichaels
@nmichaels有趣。那麼簡單地把它移動到/ dev/null呢? – Dave
這不會比刪除更快;在同一個文件系統上使用'os.rename'移動是非常快的。 – agf