【发布时间】:2019-01-31 13:40:50
【问题描述】:
我正在尝试遍历目录中的一些文件。如果文件名有两个特定的字符串,那么我应该打开并读取这些文件以获取信息。但是,如果所有文件都没有这两个字符串,我只想打印一次错误消息。
for filename in os.listdir(directory):
if filename.find("<string1>") != -1 and filename.find("<string2>") != -1:
#open file
else:
#print error message
我知道这样做会打印与目录中的文件一样多的错误消息(即,如果有 15 个文件没有匹配项,我将收到 15 条错误消息)。但是我想要的是在目录中的任何 N 个文件中没有任何匹配项后仅打印一次错误消息。我想我可以这样做:
for filename in os.listdir(directory):
if filename.find("<string1>") != -1 and filename.find("<string2>") != -1:
#open file
else:
if filename[-1]: #if filename is last in directory
#print error message
但我发现这不起作用。仅在读取最后一个文件名并且不匹配后,我将如何获得要打印的错误消息?
【问题讨论】:
标签: python python-3.x python-os fileparsing