如何从python中的文件列表中读取特定名称?

时间:2016-05-23 10:19:48

标签: python regex python-2.7

我有几个文件以名称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文件。有人可以告诉我以下代码有什么错误吗?

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", "") 

1 个答案:

答案 0 :(得分:0)

如果您只想列出一个目录,请使用glob

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