Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python递归地搜索目录以查找文件的存在_Python_Recursion - Fatal编程技术网

Python递归地搜索目录以查找文件的存在

Python递归地搜索目录以查找文件的存在,python,recursion,Python,Recursion,我需要搜索一个特定文件名的目录树,如果找到,返回1,如果没有,返回0 我曾尝试使用os.walk实现此功能,但不确定语法是否正确。我尝试使用以下函数定义作为基础来构建函数: def file_find(filename, search_path): file_found = 0 if exists(join(path, filename)): return 1 else: return 0 这工作正常,但我需要使它递归。我认为for循环和os.wal

我需要搜索一个特定文件名的目录树,如果找到,返回1,如果没有,返回0

我曾尝试使用os.walk实现此功能,但不确定语法是否正确。我尝试使用以下函数定义作为基础来构建函数:

def file_find(filename, search_path):
   file_found = 0
   if exists(join(path, filename)):
       return 1
   else:
      return 0
这工作正常,但我需要使它递归。我认为for循环和os.walk的组合是答案,但不确定如何实现

os.walktop,top-down=True,onerror=None,followlinks=False生成 通过自上而下遍历目录树,可以查看目录树中的文件名 或者自下而上。对于树中以目录顶部为根的每个目录 包括top本身,它会产生一个三元组dirpath,dirnames, 文件名

所以


os.walk为您处理子文件夹的递归,如果您的任务是使用显式递归实现相同的行为,那么您不应该使用os.walk,而应该查看os.listdir,非常感谢。似乎我在os.walk上遇到的问题实际上是我脚本中其他地方的问题,现在通过简化使其工作。
def find_file(filename, search_path):
    for dirpath, dirnames, filenames in os.walk(search_path):
        if filename in filenames:
            return 1
    return 0