path = input('请输入待查找的初始目录:')
name = input('请输入需要查找的目标文件:')
import os
j = 1
count = 0
while j:
all_files = os.listdir(path)
for each_file in all_files:
if each_file == name:
print(path + '\\'+ each_file)
count += 1
elif os.path.isdir(path + '\\'+ each_file):
path = path + '\\'+ each_file
break # Bug1:只能检索当前路径下的第一个文件夹并逐层检索下去,如果有多个文件夹,则其他文件夹无法检索,因为已经跳出了此轮for循环
else: # 如果是第三种,判断当前路径中是否有文件夹,利用文件夹的后缀为空这一特性
ext_list = [] # 所有文件后缀列表
for each_file in all_files:
ext = os.path.splitext(each_file)[1] # 取每个文件的后缀
ext_list.append(ext)
if '' in ext_list: # 文件夹后缀为空,如果当前路径中有文件夹
continue # 继续上一层for循环判断下一个each_file
else: # 如果当前路径中没有文件夹,说明检索完毕,跳出所有循环
j = 0
if j == 0 :
break
if count == 0:
print('当前路径不存在该文件!')
我自己修改了一下代码,现在只有那个Bug了,可以帮忙完善一下吗? |