1

Python でコーディングする場合、次のような関数を記述する必要があることがよくあります。

def delete_dir(dir_name):

    if os.path.exists(dir_name):
        reply = raw_input("Delete directory "+dir_name+"? [y/[n]] ")
        if reply=='y':
            os.system('rm -r '+dir_name)
        else:
            print "Aborting..."
            sys.exit()

これは基本的に、再確認するためのユーザープロンプトを備えた単なる削除コマンドです(ファイルを削除するためのものもあります)。標準ライブラリを含め、そこに大量の Python モジュールがあることを考えると、このようなものが既にそこに存在するのではないかと思います。

4

3 に答える 3

2

これは Python のことではありませんが、os.system() を使用して削除呼び出しを行う場合は、-iパラメーターを に渡すことができますrm。man ページでは次のように説明されています。

-i 削除するたびにプロンプ​​トを表示

編集:コードをもう一度読んだところ、ファイルごとではなく、削除プロセス全体の前に一度だけプロンプトを表示しているようです。-I代わりにフラグに興味があるかもしれません:

-3 つ以上のファイルを削除する前、または再帰的に削除するときに、1 回プロンプトを出します。-i よりも押し付けがましくなく、ほとんどの間違いを防ぐことができます

于 2010-01-17T16:05:29.203 に答える
1

ディレクトリを削除するには、os モジュール os.rmdir()、os.removedirs() を使用します。または shutil.rmtree() .詳細についてはドキュメントを確認してください

于 2010-01-17T15:21:55.773 に答える
0

この関数をモジュールに保存して、他のモジュールで再利用することができます。そうすれば、問題は解決されます。

于 2010-01-17T15:53:51.867 に答える