Discuss / Python / 在我理解中,实现的方法有三种:1.普通的循环方式,2.用递归 3.用生成器;下面用的是普通的循环方式

在我理解中,实现的方法有三种:1.普通的循环方式,2.用递归 3.用生成器;下面用的是普通的循环方式

Topic source

仙羽_幻境

#1 Created at ... [Delete] [Delete and Lock User]

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)

仙羽_幻境

#2 Created at ... [Delete] [Delete and Lock User]

以前有过一个文件一个文件的打开,找里面的内容时,就有想过,要是能搜索到文件里面的内容多好,现在自己就用代码实现了~!哈哈~!

仙羽_幻境

#3 Created at ... [Delete] [Delete and Lock User]

会进到文件里面进行内容搜索

仙羽_幻境

#4 Created at ... [Delete] [Delete and Lock User]

在扩展一下功能,比如添加一下命令行参数,再添加一下后面要学的多进程多线程,还有其他一些功能,就完全是一个文件搜索器了,要是在加爬虫搜索之类的,功能就更加强大了,既能搜索本地资源,又能搜索网络资源了,

python3.7要把time.clock改成time.perf_counter

逻辑的核心是通过添加list;从而利用之前的for循环实现递归的查询

if os.path.isdir(ht): 
    dirs.append(ht)

  • 1

Reply