在我理解中,实现的方法有三种:1.普通的循环方式,2.用递归 3.用生成器;下面用的是普通的循环方式
Topic source在扩展一下功能,比如添加一下命令行参数,再添加一下后面要学的多进程多线程,还有其他一些功能,就完全是一个文件搜索器了,要是在加爬虫搜索之类的,功能就更加强大了,既能搜索本地资源,又能搜索网络资源了,
- 1
在扩展一下功能,比如添加一下命令行参数,再添加一下后面要学的多进程多线程,还有其他一些功能,就完全是一个文件搜索器了,要是在加爬虫搜索之类的,功能就更加强大了,既能搜索本地资源,又能搜索网络资源了,
仙羽_幻境
import os,time
start = time.clock() #保存开始时间,用于计时, paht=r'E:\学习英语' #想要查找的路径,查找该路径下的所有目录和子目录,包括搜索所有文件里面的字符串 seekTarget='单词记忆' #需要查找的目标 filePath=[] #储存找到符合条件的目标 dirs=[paht,] #储存所有需要搜索的文件夹路径 for i, value in enumerate(dirs): for x in os.listdir(dirs[i]): ht=os.path.join(dirs[i],x) if x.find(seekTarget)!=-1: #判断文件名是否是seekTarget,没指定后缀名时,包括所有的后缀名 filePath.append(ht) if os.path.isdir(ht): #判断路径是否是文件夹,是文件夹就添加到需要搜索的目录里 dirs.append(ht) if os.path.isfile(ht): #判断路径是否是文件 with open(ht, 'r', encoding='GBK' ,errors='ignore') as str: #打开文件 if(str.read(1024).find(seekTarget)!=-1): #搜索文件里面的字符串,是否有seekTarget filePath.append(ht)
print("runing Time:",time.clock() - start) #现在时间 - 开始时间 = 程序运行时间 for i in filePath: #打印找到符合条件的目标 print('filePath=%s'%i)