2017-10-23 8 views
-2

ディレクトリ内のファイルを探しています。Regexでファイルを検索

見つけたいファイルには、2つの方法で名前を付けることができます。 大文字3文字とファイル拡張子(「ABC.xlsx」など)の組み合わせか、大文字の3つの文字列「_diff」と拡張子(「ABC_diff.xlsx」など)のいずれかです。

これは今まで私のコードです:

def find_files(directory): # Function that iterates over files in a directory 
for root, dirs, files in os.walk(directory): 
    for basename in files: 
     if re.match(r'\b[A-Z]+\b.xlsx', basename): 
      basename = os.path.splitext(basename)[0] 
      yield basename 

この関数は、ファイルの「ABC.xlsx」種類を見つけることができますが、私は両方の可能性を見つけることができるようにしたいと思います。

+2

チェック[このサイト - regex101]「クイックリファレンス」を持っているだけでなく、あなたが実験することができます(https://regex101.com/)。 – ClasG

+0

"else if"と "_diff"ファイルの2番目のパターンを使用すると何が問題になりましたか? – mkrieger1

答えて

1

使用次のパターンとre.search()機能:

... 
if re.search(r'[A-Z]{3}(_diff)?\.xlsx$', basename): 
関連する問題