0

私は検索と破棄のタイプのプログラムに取り組んでいます。それを実行する必要があるのは、特定のファイル名を持つすべてのディレクトリを検索し、それらをリストに追加することです。その後、それらのファイルをすべて削除します...リストまたはリスト内のオブジェクトではありません...

    import os
file_list=[]
for root, dirs, files in os.walk(path-to-dir'):
       for f_name in files:
              if f_name.startswith("file-name"):
                     file_list.append(f_name)

コードの一部を追加するまで書くことはできましたが、次にわかりません...

助けてください

4

2 に答える 2

1

コンピューターからファイルを削除するには、os.remove(). パラメータとしてファイルへのフルパスを取るので、呼び出す代わりos.remove("infectedFile.dll")os.remove("C:/program files/avira/infectedFile.dll")

したがって、ファイルへのフルパスfile_listを含める必要があり、次のように呼び出します。

for file in file_list:
    os.remove(file)
于 2012-12-05T10:43:27.197 に答える
0

を変更しますfile_list.append(f_name)f_nameはただの名前です。ファイルがディレクトリ階層のどこで見つかったかわからないため、処理時にファイル名へのパスを追加する必要があります。

        file_list.append(os.path.join(root, f_name))

root変数には、歩行中のパスが含まれます。

コードが機能するかどうかを確認するには、リストの内容を出力します。

print('\n'.join(file_list))

または、ループで実行して、後の部分の準備をすることもできます。

for fname in file_list:
    print(fname)

次に、を追加しos.remove(fname)てファイル名を削除します。

for fname in file_list:
    print('removing', fname)
    os.remove(fname)
于 2012-12-07T12:24:04.420 に答える