2017-04-06 6 views
-1

現在の作業ディレクトリに、削除したいファイルがあります。これらはすべて、文字列 'words'で始まるファイル名を持ちます(たとえば、ファイルwords_1.csvおよびwords_2.csv)。現在のディレクトリ内の 'words'で始まるすべてのファイルを照合して削除したいと思います。検索パターンは何ですか?部分的なファイル名のpythonを含むすべてのファイルを削除します

私はこれをhereから見つけましたが、質問にはあまり答えません。

import os, re 

def purge(dir, pattern): 
    for f in os.listdir(dir): 
     if re.search(pattern, f): 
      os.remove(os.path.join(dir, f)) 

答えて

0

私はあなたの質問を正しく理解していますが、あなたはこの機能を持っており、その使用方法を尋ねています。

purge('/path/to/your/dir','words.*') 

これで、文字列 "words"で始まるファイルはすべて削除されます。

+0

"words"で始まり、 "csv"拡張子を持つファイル名ではありません。任意の単語。*ファイルを削除しました。これは、引用された2つのインスタンスを失い、 "words.txt"などの他のファイルを削除します。 – Prune

+0

これはどのようにwords_1.csvが欠けていますか?また、すべてのファイルがcsvファイルであることも明らかではありません。これらは単に提供されている2つの例です。 – dimab0

+0

これは、 'words *'を 'words *'と置き換えた場合にのみ機能します。ありがとうございます! – StatsSorceress

0

パターンは正規表現パターンです。あなたのケースでは、それは単に何も「言葉」で始まり、「.CSV」で終わるのです、あなたはそれが行われます

pattern = "words*.csv" 
+0

あなたは正規表現の代わりにグロブを書いたようです。 – user2357112

1
t = 'words_1.csv' 
print(t.startswith('words')) 

を使用することができます。 パターンは'^words.*\.csv$'ですが、python RE docとお読みください。

+0

安全であるためには、 'os.path.isfile(filename)'をインクルードしてください。ディレクトリも 'words'で始めることができます。 – Vallentin

+0

これは私に各ファイル名をリストする必要がありますか?ディレクトリ内で「words」で始まるファイルをすべて探して削除したいのですが、 – StatsSorceress

関連する問題