4

私は最近この問題を抱えています:ウィンドウ内のフォルダを完全に削除する関数が必要だったので、検索しました。これが私が得たものです:

Pythonで空でないフォルダを削除/削除するにはどうすればよいですか? Pythonで空

答えは、問題ないように見えますが、私には少し紛らわしくて大きいようです... shutil.rmtreeを使用してWindowsのファイルにアクセスする際のoneerrorを解決するためのより良い方法があるはずです(読み取り専用ファイルにアクセスしようとするとエラーが発生します)。 。

4

1 に答える 1

8

自分に合った簡単な方法を共有したいと思います。

ファイルの書き込み許可モードを変更し、次のように削除する関数を作成しましたos.remove

import stat # needed for file stat

# arguments: the function that failed, the path 
# it failed on, and the error that occurred.
def redo_with_write(redo_func, path, err):
    os.chmod(path, stat.S_IWRITE)
    redo_func(path)

次に、を使用する場合は、それをパラメータrmtreeに追加します。onerror

import shutil
shutil.rmtree(desiredpath, onerror = redo_with_write)

それが私が得るのと同じ問題を抱えている誰かに役立つことを願っています。

于 2012-10-20T15:52:18.583 に答える