利用pathlib模块在文件夹上自动查找包含关键字的文件和文件夹
1.导入pathlib模块,输入指定路径,判断路径是否存在且是否是文件夹。
from pathlib import Path
while True:
p = input('请输入路径:')
# 转换成 Path对象
path = Path(p)
# 如果存在 且 是文件夹 则跳出循环
if path.exists() and path.is_dir():
break
else:
print('你输入的路径有误,请重新输入!')
2.输入要查找的文件(文件夹)关键字,进行递归模糊查找。
search = input('输入要搜索的文件或文件夹:')
# path.rglob() 递归查找 path.glob()不递归查找
# 使用模糊查找只要关于search都是我们要查找的 # 返回的是一个可迭代的对象
result = path.rglob(f'*{search}*')
3.如果查找不到返回打印内容,查找到则返回文件夹路径和文件路径添加到指定列表
dir_lis = []
file_lis = []
if not result:
print(f'在{path}查不到{result}关键字的信息。')
else:
# 用来存在文件夹路径和文件路径
dir_lis = []
file_lis = []
for r in result:
if r.is_dir():
dir_lis.append(r)
elif r.is_file():
file_lis.append(r)
# 如果查找存在文件夹 则迭代文件夹
if dir_lis:
print(f'查找{search}关键字的文件夹有:')
for d in dir_lis:
print(d)
# 如果查找存在文件 则迭代文件
if file_lis:
print(f'查找{search}关键字的文件有:')
for f in file_lis:
print(f)
接下来我们来实操一下吧!
1.首先博主选的路径是:D:\app\wechat_wenjian\WeChat Files\wxid_hl60r3mvuyc822
该路径的文件夹和文件如下图片,当然文件夹里面还有文件和文件夹(我们上面代码是使用的递归查找,只要和关键字有关都有查找到。)
2.运行代码 ,输入指定路径,如路径正确,则会提示你输入要查找的关键字
3.输入关键字 “abb” 按回车
4.所有关于 abb 的文件和文件夹都会找出!
到此我们的操作就成功啦!