做小甲鱼的课后题遇到的递归问题
本帖最后由 xia1990 于 2020-11-7 10:53 编辑如图,两个程序只有标记的判断条件不一样,但是结果却不一样,用 not in 递归不需返回上一层也能找到所有的文件,而用os.path.isdir()递归不返回上一层的话只能沿着一条路径一直向下找,有高手能指点一下这是为什么呢? 第一种方式进入递归后工作目录跳到了Ceshi1里没有出来。
回到主函数之后,在Ceshi1里判断Ceshi2是不是目录,因为Ceshi2不存在在Ceshi1里,所以不是目录,就没有检查Ceshi2, 只是想实现搜索的话,用os.walk即可:
import os
def search_file(start_dir, find_file):
for p, d, f in os.walk(start_dir):
if find_file in f:
print(p + '\\' + find_file)
if __name__ == '__main__':
search_file(r'f:\ceshios', 'test1.txt')
页:
[1]