1

既に存在する場合はフォルダーを削除したいのですが、存在する場合にディレクトリを削除する方法についての入力はありますか?「rm -rf」に相当する python はありますか?

os.path.isdir('./.repo') の場合: shutil.rmtree('./.repo')

4

1 に答える 1

8

shutil.rmtreeを使用できます

shutil.rmtree(パス[, ignore_errors[, onerror]])

ディレクトリ ツリー全体を削除します。path はディレクトリを指している必要があります (ただし、ディレクトリへのシンボリック リンクではありません)。ignore_errors が true の場合、削除の失敗によるエラーは無視されます。false または省略された場合、そのようなエラーは onerror で指定されたハンドラを呼び出すことによって処理されます。それが省略された場合は、例外が発生します。

onerror を指定する場合は、関数、パス、および excinfo の 3 つのパラメーターを受け入れる呼び出し可能オブジェクトである必要があります。最初のパラメーター function は、例外を発生させた関数です。os.path.islink()、os.listdir()、os.remove()、または os.rmdir() になります。2 番目のパラメーター path は、関数に渡されるパス名になります。3 番目のパラメーター excinfo は、sys.exc_info() によって返される例外情報です。onerror によって発生した例外は捕捉されません。

バージョン 2.6 で変更: path がシンボリック リンクであるかどうかを明示的にチェックし、その場合は OSError を発生させます。

注: rm -fr path は、shutil.rmtree("path", ignore_errors = True) と厳密には同等ではありません。rm -fr は読み取り専用ファイルを削除しますが、rmtree は削除しません。(以下の@Richardのコメントを参照)

于 2013-07-09T23:59:32.040 に答える