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

Pythonglob模块匹配时间范围内的文件

发布时间:2023-12-15 13:13:48

Python的glob模块是一个用于查找匹配文件路径的模块。它可以根据规定的规则,获取指定目录下匹配模式的文件路径集合。

glob模块的主要函数是glob.glob(pattern),它返回所有匹配pattern的文件路径列表。pattern是一个字符串,支持UNIX shell风格的通配符匹配。

下面是一个使用glob模块匹配时间范围内的文件的例子:

import glob
import os
import datetime

# 获取当前时间
now = datetime.datetime.now()

# 构造文件匹配模式
pattern = "*.txt"

# 构造文件路径
base_dir = "path/to/files"

# 构造时间范围
start_date = now - datetime.timedelta(days=7)
end_date = now - datetime.timedelta(days=1)

# 构造匹配模式
start_date_str = start_date.strftime("%Y-%m-%d")
end_date_str = end_date.strftime("%Y-%m-%d")
pattern = f"{start_date_str}_{end_date_str}_{pattern}"

# 使用glob模块匹配文件路径
file_paths = glob.glob(os.path.join(base_dir, pattern))

# 打印匹配的文件路径
for file_path in file_paths:
    print(file_path)

上面的例子中,首先使用datetime模块获取当前时间。然后,构造文件匹配模式,这里使用的是通配符*.txt,表示匹配所有以.txt结尾的文件。

接下来,构造文件的基础目录base_dir,这是需要匹配的文件所在的文件夹。

然后,构造时间范围,start_date表示开始时间,end_date表示结束时间。这里使用了datetime.timedelta函数,可以用来表示时间的增量或减量。

接着,使用strftime函数将开始时间和结束时间转换为字符串格式,并与文件匹配模式拼接起来作为新的匹配模式。

最后,使用os.path.join函数拼接文件基础目录和匹配模式,然后调用glob.glob函数进行匹配,并将结果保存在file_paths列表中。

最后,遍历file_paths列表,打印出每个匹配的文件路径。

需要注意的是,这里只是一个示例,具体的实现方式会根据实际需求的不同而有所不同。可以根据自己的需求修改文件匹配模式、文件基础目录和时间范围等参数。