我想读取一个以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'):
答案 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'))):