Python递归地搜索目录以查找文件的存在
我需要搜索一个特定文件名的目录树,如果找到,返回1,如果没有,返回0 我曾尝试使用os.walk实现此功能,但不确定语法是否正确。我尝试使用以下函数定义作为基础来构建函数: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
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