按条件自动搜索文件

发布时间:2024年01月24日

在计算机的某个文件夹中,假如有一大堆不同格式的文件,如下图:

我们的目的:快速查找出文件名中包含某文字内容的指定格式的文件,看看它们都放在哪里?通过分析,可能在当前文件夹中也可能在某个子文件夹里,可以使用两种方法,解决这个查找问题!

  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。

文章来源:https://blog.csdn.net/weixin_41905135/article/details/135797958
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。