Python学习笔记(24)-Python文件搜索器Version1.0(可搜索压缩文件中包含的文件)

来源:互联网 发布:怎样分享淘宝宝贝 编辑:程序博客网 时间:2024/06/01 08:22

一,简介

本篇实现了一个文件搜索器,虽然是命令行界面的,但是可以快速搜索指定目录下的指定文件,同时可以搜索到压缩文件中包含的文件。

二,效果演示

以下是命令行下检索F:盘下文件夹名中包含Java的所有文件信息。

请输入要搜索的文件所在的目录F:请输入搜索文件名包含字符串Java开始检索[F:]目录下包含[Java]的文件##查找过程中的异常:File is not a zip file##查找过程中的异常:File is not a zip file[查找结果]F:360data\重要数据\桌面\Eclipse for Java SE.lnk[查找结果]F:360data\重要数据\桌面\工具箱\Eclipse for Java SE.lnk[查找结果]F:游戏\Java.zip[查找结果]F:游戏\Java.zip解压后的:Java.doc>>> 

三,源代码

#文件搜索工具(可搜索zip内部文件)#-----------------------------------------------------模块导入与变量定义#导入模块import os,zipfile#搜索结果result=[]#-----------------------------------------------------函数定义部分#目录遍历函数def SearchPath(path,keyword):    for folder,subFolders,files in os.walk(path):        for file in files:#文件分析            AnalyzeFile(folder,file,keyword)        for subFolder in subFolders:#递归遍历            SearchPath(subFolder,keyword)     #文件分析,是否包含指定字符串,是否压缩文件中包含keyworddef AnalyzeFile(folder,file,keyword):    if keyword in file: #文件名中包含关键字        result.append(folder+"\\"+file)    if file.endswith(".zip"):#压缩文件        try:#对压缩文件分析中抛出的异常进行捕获            viewZip=zipfile.ZipFile(folder+"\\"+file)            for name in viewZip.namelist():                if keyword in name:                    result.append(folder+"\\"+file+"解压后的:"+name)            viewZip.close()        except Exception as ex:            print("##查找过程中的异常:"+str(ex))#-----------------------------------------------------程序流程部分#获取目录信息print("请输入要搜索的文件所在的目录")dir=input()while os.path.exists(dir)==False:    print("目录不存在,请重新输入")    dir=input()#获取文件信息print("请输入搜索文件名包含字符串")keyword=input()while len(keyword)<=0:    print("请输入至少1个字符")    keyword=input()#开始检索print("开始检索["+dir+"]目录下包含["+keyword+"]的文件")#遍历SearchPath(dir,keyword)#输出for re in result:    print("[查找结果]"+re)
原创粉丝点击