检查文件夹中是否存在其他文件名

时间:2019-03-08 14:38:27

标签: python

假设我有一个文件名,我想查看它是否在文件夹中。然后,我可以使用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")

而且我似乎无法弄清楚循环是否可以解决问题,因为它仅在所有语句为假时才打印,而不是在未找到任何语句时才打印(即至少总是找到三个)没有那里)。是的,这怎么能做得更好呢?

1 个答案:

答案 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”。