0
import os 
folder = 'C:/Python27/Data'
for the_file in os.listdir(folder):
    file_path = os.path.join(folder, the_file)
    try:
        if os.path.isfile(file_path):
            os.unlink(file_path)
    except Exception, e:
        print e

これは、ディレクトリからテキスト ファイルを削除するために使用するコードですが、特定のファイルをいくつかのキーワードに基づいてフィルタリングして削除したいと考えています。テキスト ファイルに「dollar」という単語が含まれていない場合は、フォルダから削除してください。これは、ディレクトリ内のすべてのファイルに対して行う必要があります。

4

1 に答える 1

2

ファイルがかなり小さい場合は、次の簡単な解決策で十分です。

if os.path.isfile(file_path): # or some other condition
    delete = True             # Standard action: delete
    try:
        with open(file_path) as infile:
            if "dollar" in infile.read(): # don't delete if "dollar" is found
                delete = False 
    except IOError:
        print("Could not access file {}".format(file_path))
    if delete: 
        os.unlink(file_path)

ファイルが非常に大きく、ファイル全体をメモリにロードしたくない場合 (特に、検索テキストがファイルの早い段階で発生することが予想される場合)、上記のwithブロックを次のように置き換えます。

        with open(file_path) as infile:
            for line in file:
                if "dollar" in line:
                    delete = False
                    break
于 2013-04-10T13:08:20.907 に答える