空的,所以,我需要清理的目錄不爲空。 我已經創建瞭如下function.For測試的原因我想刪除JDK安裝刪除目錄,是不是在蟒蛇
def clean_dir(location):
fileList = os.listdir(location)
for fileName in fileList:
fullpath=os.path.join(location, fileName)
if os.path.isfile(fullpath):
os.chmod(fullpath, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO)
os.remove(location + "/" + fileName)
elif os.path.isdir(fullpath):
if len(os.listdir(fullpath)) > 0:
clean_dir(fullpath)
#os.rmdir(location + "/" + fileName)
shutil.rmtree(location + "/" + fileName)
return
我試圖用rmtree和rmdir,但它失敗。
我得到了使用rmtree的錯誤是:
OSError: Cannot call rmtree on a symbolic link
這是當我用命令rmdir我得到了錯誤:
OSError: [Errno 66] Directory not empty: '/tmp/jdk1.8.0_25/jre/lib/amd64/server'
代碼正常的窗口。但由於某種原因,它在Linux上失敗。
你在一個符號鏈接,而不是一個目錄指向rmtree。 https://en.wikipedia.org/wiki/Symbolic_link – iScrE4m
如果它是一個符號鏈接,我想'os.unlink(...)'是你所需要的。 (爲了澄清,這將只是刪除符號鏈接。它不會刪除任何符號鏈接指向的內容。) – smarx
IIRC,'os.unlink'應該刪除的文件。 – kronenpj