Pythonでフォルダを再帰的に削除する 質問する

Pythonでフォルダを再帰的に削除する 質問する

空のディレクトリを削除するときに問題が発生します。コードは次のとおりです。

for dirpath, dirnames, filenames in os.walk(dir_to_search):
    # other codes

    try:
        os.rmdir(dirpath)
    except OSError as ex:
        print(ex)

引数はdir_to_search、作業を実行する必要があるディレクトリを渡す場所です。そのディレクトリは次のようになります。

test/20/...
test/22/...
test/25/...
test/26/...

上記のフォルダーはすべて空であることに注意してください。このスクリプトを実行すると、フォルダー20のみが25削除されます。ただし、フォルダー25と は26空のフォルダーであるにもかかわらず、削除されません。

編集:

私が受け取っている例外は次のとおりです:

[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/29'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/29/tmp'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/28'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/28/tmp'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/26'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/25'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/27'
[Errno 39] Directory not empty: '/home/python-user/shell-scripts/s3logs/test/2012/10/27/tmp'

どこで間違いを犯しているのでしょうか?

ベストアンサー1

試すshutil.rmtree:

import shutil
shutil.rmtree('/path/to/your/dir/')

おすすめ記事