我需要在一个小目录树中搜索特定文件名,如果找到则返回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的组合是答案,但不确定如何实现。
答案 0 :(得分:3)
os.walk(top,topdown = True,onerror = None,followlinks = False)生成 通过自上而下遍历树来访问目录树中的文件名 或自下而上。对于以目录顶部为根的树中的每个目录 (包括顶部本身),它产生一个3元组(dirpath,dirnames, 文件名)
所以...
def find_file(filename, search_path):
for dirpath, dirnames, filenames in os.walk(search_path):
if filename in filenames:
return 1
return 0
os.walk()
为你处理通过子文件夹的递归,如果你的任务是使用显式reusion实现相同的行为,那么你不应该使用os.walk()
而是查看{{ 1}}