相信很多小伙伴有过这样的困扰,每次你在编辑文件时,将文件保存后就不知道文件到哪里去了,找了半天也找不到,最后没办法,只能将好不容易做好的文档进行重做,很是苦恼。
这时候你肯定就想用window自带的搜索功能来搜索你要找的文件,然后window的搜索功能本身就是一个很鸡肋,也许你等了几十秒搜索的东西还不会搜索得到,甚至电脑还会就此卡住。
这时候你就迫切需要一个好的搜索软件来找到自己想要的文件。不过目前我是不会说的,因为我刚好也要做一个简单版的文件搜索器。
可以利用之前学到的正则表达式来实现这个功能。
实现思路如下:
1.首先我们可以先写一个正则表达式来匹配我们的文件,由于时间问题,我们就使用后缀名来匹配吧,
2.然后我们可以通过递归遍历文件夹,找到符合条件的文件
3.将每个符合条件的文件存入数组中
4.最后将这些符合条件的文件的完整路径写入到某个文件中便于查看
话不多说,实战一波:
import re, os, sys
# 递归寻找文件
def find_dirs(path):
file_list = []
for root, dirs, files in os.walk(path):
for file in files:
file_name = os.path.join(root, file).replace('\\', '/')
if txtRegex.match(file_name):
file_list.append(file_name)
return file_list
# path = 'F:\\test\\test'
path = sys.argv[1]
suffix = sys.argv[2]
# suffix = '\.txt'
txtRegex = re.compile(r'.*' + suffix)
regDir = open('F:\\test\\文件目录.txt', 'w')
regDir.write('满足要求的文件如下: \n')
for filename in find_dirs(path):
regDir.write(filename + '\n')
regDir.close()
代码已经撸完,可以来操作一波:
py findTxt.py F:/test/test .xls
我们的目标是要找到F:/test/test目录下所有的以.xls结尾的文件,运行一下我们自制的 简易版文件搜索器
我们到对应的目录下查找一下,看看是否存在这两个文件
这样,一个简易版的文件搜索器就完成了
其实在传入参数时,可以传入一个正则表达式,但大多数人对正则不是很了解,所以我就用比较通用后缀查找法了。有兴趣的朋友还可以将这个做成图形化界面,这样,可以显得更加的高大上,对了之前说的软件叫everything
喜欢本文的话,可以关注以下公众号,每天定时更新一篇python学习日记,让我们一起成长!