使用python查找以特定名称开头的目录?

时间:2016-02-25 11:04:31

标签: python regex python-2.7

我想读取一个以VCALogParser_output_ARW.log,VCALogParser_output_CZC.log等名称开头的文件。但是在同一目录中,还有名为VCALogParser_output_ARW_previous.log,VCALogParser_output_CZC_previous.log等的文件。但我想只读取像VCALogParser_output_ARW.log这样的文件。 我尝试如下所示,但它正在读取VCALogParser_output_ARW.log和VCALogParser_output_ARW_previous.log。谁能告诉我怎么做?

for dirpath, dirnames, filenames in os.walk(directory): 
    for filename in filenames:
        if filename.startswith('VCALogParser_output'): 

3 个答案:

答案 0 :(得分:3)

您可以使用re.match

if re.match('VCALogParser_output_[A-Z]+\.log', filename):

答案 1 :(得分:0)

它不起作用,因为您不感兴趣的文件也以VCALogParser_output开头。您可以使用方法endswith添加有关文件末尾的术语。

尝试以下

for dirpath, dirnames, filenames in os.walk(directory): 
    for filename in filenames:
        if filename.startswith('VCALogParser_output'): 
            if not filename.endswith('_previous.log'): 

答案 2 :(得分:0)

使用endswith()应该完成这项工作:

for dirpath, dirnames, filenames in os.walk(directory): 
for filename in filenames:
    if (filename.startswith('VCALogParser_output') and (not filename.endswith('previous.log'))):