欢迎访问宙启技术站
智能推送

如何在Python中使用glob2模块进行多层级目录文件搜索

发布时间:2023-12-31 23:43:23

glob2是一个Python模块,用于在多层级目录中搜索文件。与标准库中的glob模块不同,glob2可以很方便地搜索多层级的目录,并支持通配符匹配。下面是一个使用glob2模块进行多层级目录文件搜索的例子。

首先,你需要安装glob2模块,可以使用以下命令在终端或命令提示符中安装:

pip install glob2

安装完成后,你可以使用以下代码进行多层级目录文件搜索:

import glob2

# 搜索指定目录及其子目录下的所有txt文件
files = glob2.glob('path/to/directory/**/*.txt')

# 打印搜索到的文件路径
for file in files:
    print(file)

在上面的代码中,path/to/directory是你要搜索的目录的路径。双星号**可以匹配任意多层级的目录,而单星号*可以匹配任意长度的文件名。

你也可以使用其他通配符进行灵活的匹配。例如,如果你要搜索所有以test开头的文件,可以使用以下代码:

files = glob2.glob('path/to/directory/**/test*')

除了使用通配符匹配文件名外,你还可以使用其他条件对文件进行过滤。例如,你可以使用文件的修改时间、大小等进行过滤。下面是一个根据修改时间进行过滤的例子:

import glob2
import os
import time

# 搜索指定目录及其子目录下的所有txt文件,并筛选出修改时间在2021年之后的文件
files = glob2.glob('path/to/directory/**/*.txt') 

# 打印筛选后的文件路径和修改时间
for file in files:
    mod_time = os.path.getmtime(file)
    if mod_time > time.mktime((2021, 1, 1, 0, 0, 0, 0, 0, 0)):
        print(file, time.ctime(mod_time))

在上面的代码中,os.path.getmtime()函数用于获取文件的修改时间,time.mktime()函数用于将时间转换为秒数。修改时间在2021年1月1日之后的文件将被打印出来。

总结:

使用glob2模块可以方便地进行多层级目录文件搜索。你可以使用通配符匹配文件名,也可以根据其他条件(如修改时间、文件大小等)对文件进行过滤。以上是glob2的基本使用方法和示例。希望能对你有所帮助!