如何在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的基本使用方法和示例。希望能对你有所帮助!
