按条件快速搜索文件

在计算机的某个文件夹中,假如有一大堆不同格式的文件,如下图:b06c6465253c053f439a76b55dd03056.png我们的目的:快速查找出文件名中包含某文字内容的指定格式的文件,看看它们都放在哪里?通过分析,可能在当前文件夹中也可能在某个子文件夹里,可以使用两种方法,解决这个查找问题!

  1. os模块实现 利用os模块的walk()方法来获取文件列表,再通过if条件语句筛选符合规则的文件。导入使用的os模块,file_name是我们要查找的文件的名(可以是包含的部分文字),suffix_name是要查找的文件类型。os模块的walk()方法会递归来帮助我们获取文件夹中的所有文件,并得到一个文件列表。针对文件列表filenames中的每个文件,首先判断它是否包含file_name的suffix_name文件。如果同时满足这两个条件,再调用join()方法拼接出它的绝对路径,打印出最终的结果即可。源码如下:

import os

file_name = input('请输入要查找的文件名(可以是包含的部分文字):')
suffix_name = input('请输入要查找的文件后缀名(文件类型,如"xlsx, doc, txt等"):')

# 本案例是指定的路径
path = '/Users/bruce_liu/Desktop'
for dirpath, dirnames, filenames in os.walk(path):
    for name in filenames:
        if f'{file_name}' in name and f'.{suffix_name}' in name:
            file_path = os.path.join(dirpath, name)
            print(file_path)

运行结果:

请输入要查找的文件名(可以是包含的部分文字):Python
请输入要查找的文件后缀名(文件类型,如"xlsx, doc, txt等"):md
/Users/bruce_liu/Desktop/xpath/爬虫案例/Python爬虫—requests模块.md
/Users/bruce_liu/Desktop/python-penetration/Python编写单词复习小程序.md
/Users/bruce_liu/Desktop/python-penetration/用Python编写背单词的小程序.md
  1. glob模块实现 利用glob模块的正则通配符,来筛选符合规则的文件。导入glob模块后,调用glob()方法,其中**搭配recursive参数,实现递归查找文件,*file_name*和suffix_name与“**”和path路径一起拼接要查找的文件路径下的指定条件的文件。源码如下:

import os
import glob

file_name = input('请输入要查找的文件名(可以是包含的部分文字):')
suffix_name = input('请输入要查找的文件后缀名(文件类型,如"xlsx, doc, txt等"):')

# 本案例是指定的路径
path = '/Users/bruce_liu/Desktop/'
# 遍历文件夹及文件夹
for file in glob.glob(os.path.join(path, f'**/*{file_name}*.{suffix_name}'), recursive=True):
    print(file)

两种方法中glob模块在文件查找方面更有优势。类似的相关的方法可以通过小蜜蜂AI的GPT问答获得。网址:https://zglg.work。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值