编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。
程序员文章站
2024-03-04 15:32:17
...
小菜鸡开始学写Python啦!这是写出来的第一个稍微有一点点功能的代码,打印出文件名包含某关键字的文件名和绝对路径,采用了递归的方式。
import os #os模块
def _x_in_file(x,flist,path):#flist是由文件名组成的list,若有,则打印文件名和绝对路径
for f in flist:
if f.find(x)!=-1:
print(f , 'in' , path)
def findxfile(x,dirpath):#检查目录dirpath以及目录下面的目录中的文件中是否有关键字x
os.chdir(dirpath)
Dir = [x for x in os.listdir('.') if os.path.isdir(x) ] #目录名组成的list
F = [x for x in os.listdir('.') if os.path.isfile(x) ] #文件名组成的list
path_now = os.path.abspath('.')
_x_in_file(x,F,path_now)#打印含x的文件名
path_pre = path_now
for d in Dir:#对子目录搜索
path_now = path_pre + '\\' + d
os.chdir(path_now)#进入子目录
F1 = [x for x in os.listdir('.') if os.path.isfile(x) ]
_x_in_file(x, F, path_now)#打印文件名
return findxfile(x,path_now)#递归处理该子目录
findxfile('e','D:\\py练习')
我测试的文件夹里面是学习python过程中写的小小小代码段,有点丢人。。。。。
结果是这样的:
有什么不足的地方还请大佬们多多指教啦!