假设我有一个文件名,我想查看它是否在文件夹中。然后,我可以使用os.path
在文件夹中进行搜索,例如:
import os.path
file_name = "file1.txt"
if os.path.isfile(file_name) is False:
print("File name was not found")
这很简单。但是,如果我知道该文件可以使用不同的名称,例如:
file_names = ["file1.txt", "file2.txt", "file3.txt", "file4.txt"]
然后我可能会说些“丑陋”的事情:
if os.path.isfile(file_names[0]) is False or if os.path.isfile(file_names[1]) is False or if os.path.isfile(file_names[2]) is False or if os.path.isfile(file_names[3]) is False:
print("File name was not found")
而且我似乎无法弄清楚循环是否可以解决问题,因为它仅在所有语句为假时才打印,而不是在未找到任何语句时才打印(即至少总是找到三个)没有那里)。是的,这怎么能做得更好呢?
答案 0 :(得分:3)
if not any(os.path.isfile(file_name) for file_name in file_names):
print("Not found!")
或更简洁地说:
if not any(map(os.path.isfile, file_names)):
print("Not found!")
这是说:“如果至少存在这些文件中的一个,则不要打印Not found
”。