2015-11-01 143 views
2

给定一个目录为字符串,如何查找是否存在任何文件?Python:检查给定目录中是否存在任何文件

os.path.isFile()  # only accepts a specific file path 
os.listdir(dir) == [] # accepts sub-directories 

我的目标是检查路径是否只有文件(不包括子目录)。

+0

在实践中,很少需要这样的东西,因为如果没有任何东西,正确编写循环来处理目录中所有感兴趣的文件只会迭代0次。你希望你可以在循环中对它们进行计数,并且如果检查看看有多少(如果有的话)被处理过。 – martineau

回答

8

要只检查一个特定的目录中,这样的解决方案就足够了:

from os import listdir 
from os.path import isfile, join 

def does_file_exist_in_dir(path): 
    return any(isfile(join(path, i)) for i in listdir(path)) 

要剖析发生了什么:

  • 方法does_file_exist_in_dir将会把你的路径。
  • 使用any如果通过调用listdir来遍历路径的内容找到文件,它将返回True。请注意使用join作为路径,以便提供合格的文件路径名称以进行正确检查。

作为一个选项,如果你想遍历指定路径的所有子目录,并检查文件,您可以使用os.walk,只是检查,看看是否你在级别包含任何这样的文件:

for dir, sub_dirs, files in os.walk(path): 
    if not files: 
     print("no files at this level") 
+0

“文件打印中存在文件错误”为' – SIslam

+0

@idjaw:os.walk()将经过所有子目录。我只是在寻找一个给定的路径 – meestaman

+0

@meestaman我实际上正在为这个问题准备一个解决方案。耽误。 :) – idjaw

相关问题