|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小甲鱼的答案,如下
- import os
- def search_file(start_dir, target) :
- os.chdir(start_dir)
-
- for each_file in os.listdir(os.curdir) :
- if each_file == target :
- print(os.getcwd() + os.sep + each_file) # 使用os.sep是程序更标准
- if os.path.isdir(each_file) :
- search_file(each_file, target) # 递归调用
- os.chdir(os.pardir) # 递归调用后切记返回上一层目录
- start_dir = input('请输入待查找的初始目录:')
- target = input('请输入需要查找的目标文件:')
- search_file(start_dir, target)
复制代码
会出现这个问题
- Traceback (most recent call last):
- File "D:\小程序\030讲--输入文件名以及开始搜索的路径.py", line 39, in <module>
- search_file(start_dir, target)
- File "D:\小程序\030讲--输入文件名以及开始搜索的路径.py", line 34, in search_file
- search_file(each_file, target) # 递归调用
- File "D:\小程序\030讲--输入文件名以及开始搜索的路径.py", line 28, in search_file
- os.chdir(start_dir)
- PermissionError: [WinError 5] 拒绝访问。: 'System Volume Information'
复制代码
本帖最后由 angtn 于 2019-9-15 22:48 编辑
第二题试试这段代码:
- import os
- def search_for(directoy,target):
- for (root,dirs,files) in os.walk(directoy):
- if target in files:
- print('\n',os.path.join(root,target))
- directoy = input('请输入待查找的初始目录:')
- target = input('请输入需要查找的目标文件:')
- search_for(directoy,target)
复制代码
第三题
- import os
- def echo(path):
- f = open('vediolist.txt','a')
-
- for (root,dirs,files) in os.walk(path):
- for every in files:
- if '.mp4' in os.path.splitext(every):
- f.write('%s\n\n' % os.path.join(root,every))
-
- if '.avi' in os.path.splitext(every):
- f.write('%s\n\n' % os.path.join(root,every))
- if '.rmvb' in os.path.splitext(every):
- f.write('%s\n\n' % os.path.join(root,every))
-
- if '.wmv' in os.path.splitext(every):
-
- f.write('%s\n\n' % os.path.join(root,every))
-
- f.close()
-
- path = input('请输入待查找的初始目录:')
- echo(path)
- print('打印成功')
-
复制代码
|
|