2016-05-23 9 views
0

VCALogParser_output_ARW.log、VCALogParser_output_ARW_PREVIOUS.log、VCALogParser_output_GED.log、VCALogParser_output_GED_PREVIOUS.logなどの名前で始まるファイルがいくつかあります。 VCALogParser_output_ARW.logで始まるファイルは読み込みたいが、PREVIOUS.logファイルは読み込まない。 ARW、GEDなどの言語(例:ARWはアラビア語、GEDはドイツ語など)。以下のコードを試しましたが、VCALogParser_output_.logファイルとVCALogParser_output_ARW_PREVIOUS.logファイルの両方が読み込まれます。誰かが以下のコードで間違いが何であるか教えてください。Pythonのファイルのリストから特定の名前を読み取る方法は?

with open(output_filename, 'w') as f_output: 
    for dirpath, dirnames, filenames in os.walk(directory): 
     for filename in filenames: 
      if re.match('VCALogParser_output_[A-Z]+\.log', filename): 
      #if (filename.startswith('VCALogParser_output') and (not filename.endswith('previous.log'))): 
       str=filename 
       str=str.replace("VCALogParser_output_", "") 
       str=str.replace(".log", "") 
+0

を*含まれていますか?また、正規表現のパターン文字列の前に 'r'を置く方がよいでしょう。 –

+0

私のために働く。出力を表示できますか?それはあなたの行動を示していますか? – Daniel

+0

私はそれを試みましたが、それは現在と前のログファイルも読み込んでいます。 – surya

答えて

0

だけglobを使用し、一つのディレクトリを一覧表示したい場合: `filename`だけ*ファイル名、またはパス全体を

with open(output_filename, 'w') as f_output: 
    for filename in glob.iglob(os.path.join(directory, 'VCALogParser_output_???.log')): 
     # do whatever you want with filename 
関連する問題