io_do_dir_2
Topic source不好意思,改成相对路径:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
def find(dir_path, key, root):
if not os.path.isdir(dir_path):
print('The input directory does not exist.')
return
for x in os.listdir(dir_path):
abs_path = os.path.join(dir_path, x)
if os.path.isfile(abs_path) and key in os.path.splitext(x)[0]:
print('..%s' % abs_path[int(len(root)):])
if os.path.isdir(abs_path):
find(abs_path, key, root)
def findr(dir_path, key):
root = dir_path
find(dir_path, key, root)
d = input('the directory path: ')
k = input('the filename keyword: ')
findr(d, k)
回来找io方面代码。楼上的同学能不能给个具体例子说明是怎样漏的? 比如这样:
the directory path: D:\新建文件夹
the filename keyword: 文档
..\新建文件夹\新建文件夹\新建文本文档.txt
..\新建文件夹\新建文件夹 (2)\新建文本文档.txt
..\新建文件夹\新建文件夹 (3)\新建文本文档.txt
..\新建文件夹 (2)\新建文件夹\新建文本文档.txt
..\新建文件夹 (2)\新建文件夹 (2)\新建文本文档.txt
..\新建文件夹 (2)\新建文本文档.txt
..\新建文件夹 (3)\新建文件夹\新建文本文档.txt
..\新建文件夹 (3)\新建文件夹 (2)\新建文本文档.txt
..\新建文件夹 (3)\新建文件夹 (3)\新建文本文档.txt
- 1
数据学家琪露诺
这里卡了好久,基本参考了discuss同学的。思路是把文件目录看成树结构,文件夹是非叶结点,文件是叶结点。递归遍历判断是否有包含关键字的叶结点。如果文件夹不存在一开始就直接提示并返回。第一题答案在老师的参考源码里。
我的作业地址,欢迎交流指正 https://github.com/xiajava/learn-python3