したがって、空でないディレクトリをきれいにする必要があります。 私はrmtreeとrmdirをを使用しようとしたJDKのインストールpythonで空ではないディレクトリを削除してください
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
を削除しようとした次function.Forテストの理由を作成しているが、それは失敗します。
私は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'
コードは、Windows上で正しく動作します。しかし何らかの理由でLinuxで失敗します。
のための新しいのelifを追加し、リンク解除のオプションを追加する必要がありました。 https://en.wikipedia.org/wiki/Symbolic_link – iScrE4m
シンボリックリンクの場合は、 'os.unlink(...)'だけで十分だと思います。 (シンボリックリンクを削除するだけで、シンボリックリンクが指し示すものは削除されません) – smarx
IIRC、 'os.unlink'はファイルも削除する必要があります。 – kronenpj