一,简介
本篇实现了一个文件搜索器,虽然是命令行界面的,但是可以快速搜索指定目录下的指定文件,同时可以搜索到压缩文件中包含的文件。
二,效果演示
以下是命令行下检索F:盘下文件夹名中包含Java的所有文件信息。
请输入要搜索的文件所在的目录
F
:
请输入搜索文件名包含字符串
Java
开始检索
[F
:]目录下包含
[Java
]的文件
[查找结果
]F
:360data\重要数据\桌面\Eclipse
for Java SE
.lnk
[查找结果
]F
:360data\重要数据\桌面\工具箱\Eclipse
for Java SE
.lnk
[查找结果
]F
:游戏\Java
.zip
[查找结果
]F
:游戏\Java
.zip解压后的:Java
.doc
>>>
三,源代码
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
)
def 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
)
如有问题请扫码联系我