2009-06-13 5 views
6

私は単一のファイルを削除する方法を知っていますが、私の実装では1つのタイプのディレクトリ内のすべてのファイルを削除する方法が分かりません。Windows上のPythonでファイルを削除する

ディレクトリは、私が他のものにすべての.configファイルをされているファイルは、何もを削除したい\ myfolderなど

であると言います。 どうすればいいですか?

おかげで親切に

+0

を受け入れるため、gen_filesが簡単に、パターンのタプルを受け入れるように書き換えることができることを.configファイルをすべて削除したいのですか? – Triptych

+0

はい! 固定 そのことについて申し訳ありません –

+0

特定のパスのすべての.configファイルを削除しますか? .configファイルを削除したいだけなら、os.remove( ".config")を実行することができます –

答えて

4

私は、次のような何かをするだろう:

import os 
files = os.listdir("myfolder") 
for f in files: 
    if not os.path.isdir(f) and ".config" in f: 
    os.remove(f) 

それは、ディレクトリ内のファイルを一覧表示し、それがディレクトリとファイル名でなければどこにでもその中に「.configファイルを」持っています消して。 myfolderと同じディレクトリにあるか、ディレクトリのフルパスを指定する必要があります。これを再帰的に行う必要がある場合は、os.walk functionを使用します。

+0

フォルダ。申し訳ございません。Dan –

+0

あなたの過ちではありませんが、この回答はOPの質問の編集のために現在無関係です。 – Triptych

+0

まだ繰り返しの良い例です! –

15

globモジュールを使用します。

ここ
import os 
from glob import glob 

for f in glob ('myfolder/*.config'): 
    os.unlink (f) 
+1

+1:うん、globは正しいアプローチです(もちろん、サブディレクトリを歩きたくない場合はos.walkが必要です)。 –

1

屋に行く:

import os 

# Return all files in dir, and all its subdirectories, ending in pattern 
def gen_files(dir, pattern): 
    for dirname, subdirs, files in os.walk(dir): 
     for f in files: 
     if f.endswith(pattern): 
      yield os.path.join(dirname, f) 


# Remove all files in the current dir matching *.config 
for f in gen_files('.', '.config'): 
    os.remove(f) 

注意もstr.endswithタプル

関連する問題