Python 检查目录列表中是否存在文件

Python 检查目录列表中是否存在文件,python,Python,我有一个目录列表和一个文件名。我想检查此文件名是否存在于任何目录中,如果确实存在,则代码通过,如果不存在,则我们将出错。不过,我在下一步中遇到了一些麻烦,以下是我的情况 for value in d.values(): for path in value: if exists(path + '/' + filename): print 'True' else: print 'False' 以下是我的测试输出

我有一个目录列表和一个文件名。我想检查此文件名是否存在于任何目录中,如果确实存在,则代码通过,如果不存在,则我们将出错。不过,我在下一步中遇到了一些麻烦,以下是我的情况

for value in d.values():
    for path in value:
        if exists(path + '/' + filename):
            print 'True'
        else:
            print 'False'
以下是我的测试输出列表:

False
False
False
False
False
False
False
False
False
False
False
False
False
False
True
True
True
True
正如您所看到的,这失败了很多,但是这里有一些传递案例,事实上,is传递一次对我来说已经足够好了,但是我不确定如何将其转换为正确的python逻辑

基本上我想做的是

if file exists in any list_of_paths:
    print 'True'
else:
    print 'False'

有人能建议如何处理这个问题吗?

一个非常简单的解决方案是将此代码包装在一个函数中,该函数在找到文件所在的路径后立即返回
True

一个非常简单的解决方案是将此代码包装在一个函数中,该函数在找到文件所在的路径后立即返回
True

只需将调用exists的地方替换为os.path.exists(路径),您的代码应该可以正常工作。

只需将调用exists的地方替换为os.path.exists(路径),您的代码应该可以正常工作。

如果列表中已经有文件夹名称,并且希望筛选其中包含特定文件名的文件夹,因此,您可以使用列表:

import os

print(any(os.path.exists(os.path.join(dirpath, filename))
          for directories in d.values()
          for dirpath in directories))
import os
listOfFolders = [*contains the folderpaths*]
validFolders = [folder for folder in listOfFolders if 'badFile.txt' not in os.listdir(folder)]

这将返回其中没有
badFile.txt
的文件夹列表。或者,如果您希望文件夹中包含
badFile.txt
,则可以省略
not

如果列表中已经包含文件夹名称,并且希望筛选其中包含特定文件名的文件夹,则可以使用列表理解:

import os
listOfFolders = [*contains the folderpaths*]
validFolders = [folder for folder in listOfFolders if 'badFile.txt' not in os.listdir(folder)]

这将返回其中没有
badFile.txt
的文件夹列表。或者,如果您希望文件夹中包含
badFile.txt
,您可以省略
not

如果我理解正确,那么您可以在第一次匹配后中断for循环,因此在
print True
下面放一行
break
。对于
中断
继续
。如果我误读了这个问题,很抱歉。如果我理解正确,那么您可以在第一次匹配后中断for循环,因此在
print True
下面放置一行
break
。对于
中断
继续
。如果我误读了这个问题,很抱歉。非常实用,但它也非常简单地表示为
any
加上生成器表达式,我更喜欢。是的,但这需要使用比简单函数更复杂的Python概念。我同意,并且我经常尝试在回答中走这条路线,但这些都是基本的python构建块,我在这一块的另一面进行了介绍。非常实用,但它也非常简单地表示为
any
加上生成器表达式,我更喜欢。是的,但这需要使用比简单函数更复杂的python概念。我同意,我经常尝试在我的答案中走这条线,但这些都是基本的python构建块,我在这一条的另一边。