|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def search_file(path, filename):
import os
os.chdir(path)
allfiles = os.listdir(os.curdir)
for each_file in allfiles:
if filename == each_file:
print(os.getcwd()+os.sep+each_file)
elif os.path.isdir(each_file):
search_file(each_file, filename)
os.chdir(os.path.pardir)
else:
print('没有此文件。')
path = input('请输入要查找的范围:')
filename = input('请输入要查找的文件名:')
search_file(path, filename)
输出
请输入要查找的范围:E:\A
请输入要查找的文件名:a.txt
E:\A\B\a.txt
没有此文件。
没有此文件。
没有此文件。
问题:
OS的一个课后作业。我基本按照小甲鱼的写的就想加一个没有找到文件时的提醒结果因为递归调用函数所以有几个文件夹就会出现几次没有此文件。想半天也没有好的解决方案。所以小甲鱼也没有写没有找到文件的提醒吗?有没有办法解决啊?
加在递归内自然会被多次执行,所以我们也可以这样:
- import os
- def search_file(path, filename):
- global flag
- os.chdir(path)
- allfiles = os.listdir(os.curdir)
- for each_file in allfiles:
- if filename == each_file:
- flag = True
- print(f'找到的文件路径为:{os.getcwd()+os.sep+each_file}')
- elif os.path.isdir(each_file):
- search_file(each_file, filename)
- os.chdir(os.path.pardir)
- path = input('请输入要查找的范围:')
- filename = input('请输入要查找的文件名:')
- flag = False
- search_file(path, filename)
- if not flag:
- print(f'路径:{os.getcwd()} 内没有此文件。')
复制代码
|
|