python查找文件和文件夹


精确查找的意思是只列出名称与指定关键词完全相同的文件或文件夹。

使用Path()函数创建路径对象
使用路径对象的exists()函数和is_dir()函数判断用户输入的路径是否存在并且是否为文件夹
from pathlib import Path
while True:
    folder = input('请输入要在哪个文件夹(如【D:\\】或【D:\\案例\\】)下进行查找:') #先输入查找的范围,即要在哪个文件夹下进行查找;再输入查找的关键词,即文件或文件夹的准确名称
    folder = Path(folder.strip())
    if folder.exists() and folder.is_dir():
        break
    else:
        print('输入的路径不存在或不正确,请重新输入!')
keyword = input('请输入要查找的文件或文件夹的名称:').strip() #先使用strip()函数删除用户输入的字符串首尾的空格,以减少用户可能的误操作对运行结果的影响
        result = list(folder.rglob(keyword))  #使用路径对象的rglob()函数在用户输入的路径下查找名称与指定关键词完全相同的文件和子文件夹,并使用list()函数将查找结果转换为列表,以便进行后续的结果输出。
        if len(result) != 0:  #利用len()函数判断查找结果是否为空
            print(f'在【{folder}】下查找到以下名为【{keyword}】的文件或文件夹:')
            for i in result:
               print(i)
        else:
            print(f'在【{folder}】下未查找到名为【{keyword}】的文件或文件夹!')
break语句会强制结束整个循环,continue语句则只终止本轮循环,紧接着还会继续执行下一轮循环
使用上述代码时需要注意,输入查找范围时最好不要遗漏末尾的“\”,输入查找关键词时尽量不要输入多余的空格,否则可能会导致查找不到结果


模糊查找文件和文件夹

第10行代码,这里因为要进行模糊查找,所以在调用rglob()函数时,在关键词的前后添加了通配符“*”。
先将查找结果分为文件和文件夹两类,再分别输出.
from pathlib import Path
while True:
    folder = input('请输入要在哪个文件夹(如【D:\\】或【D:\\案例\\】)下进行查找:')
    folder = Path(folder.strip())
    if folder.exists() and folder.is_dir():
        break
    else:
        print('输入的路径不存在或不正确,请重新输入!')
        keyword = input('请输入要查找的文件或文件夹的名称:').strip()
        result = list(folder.rglob(f'*{keyword}*'))

if len(result) == 0:
     print(f'在【{folder}】下未查找到名称包含关键词【{keyword}】的文件或文件夹!')
else:  #对结果进行分类输出
    result_folder = [] #存放查找到的文件夹和文件
    result_file = []  #存放查找到的文件
    for i in result:
        if i.is_dir():
            result_folder.append(i)
        else:
            result_file.append(i)
    if len(result_folder) != 0:
         print(f'在【{folder}】下查找到以下名称包关键词【{keyword}】的文件夹:')
        for i in result_folder:
            print(i)
    if len(result_file) != 0:
         print(f'在【{folder}】下查找到以下名称包含关键词【{keyword}】的文件:')
        for i in result_file:
            print(i)
使用路径对象的is_dir()函数判断查找结果中的路径指向的是否是文件夹。如果指向的是文件夹,则将路径添加到存放文件夹的列表中;如果指向的不是文件夹,则将路径添加到存放文件的列表中。

#Python#
python基础工程师 文章被收录于专栏

python基础语法+做算法题的应用+python自动化办公+pymysql+python网络爬虫

全部评论
这个太有用了,感谢分享
点赞 回复 分享
发布于 2022-08-21 21:23 陕西

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
Ncsbbss:又想干活又想要工资,怎么什么好事都让你占了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务