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

通过glob()函数在Python中查找指定日期范围的文件

发布时间:2023-12-28 11:11:39

在Python中,可以使用glob()函数来查找指定日期范围的文件。glob()函数是标准库glob中的一个方法,它支持使用通配符模式来匹配文件名。

首先,需要导入glob模块:

import glob

然后,可以使用glob()函数来查找指定日期范围的文件。假设要查找在2021年1月1日到2021年1月31日之间创建或修改的文件,可以使用如下代码:

import glob
import os
import datetime

start_date = datetime.datetime(2021, 1, 1)
end_date = datetime.datetime(2021, 1, 31)

# 获取文件夹下所有文件的路径
files = glob.glob('path/to/folder/*.*')

# 迭代所有文件
for file in files:
    # 获取文件的创建时间和最后修改时间
    stat = os.stat(file)
    create_time = datetime.datetime.fromtimestamp(stat.st_ctime)
    modify_time = datetime.datetime.fromtimestamp(stat.st_mtime)
    
    # 判断文件是否在指定的日期范围内
    if start_date <= create_time <= end_date or start_date <= modify_time <= end_date:
        print(file)

在上述代码中,start_dateend_date分别表示起始日期和结束日期。files变量使用glob.glob()函数获取指定文件夹下的所有文件路径。然后,使用os.stat()函数获取文件的创建时间和最后修改时间,并将其转换为datetime对象。接着,判断文件的创建时间和最后修改时间是否在指定的日期范围内,如果是,则打印文件路径。

需要注意的是,glob()函数返回的文件路径是相对于当前工作目录的相对路径。如果需要获取绝对路径,可以使用os.path.abspath()函数将相对路径转换为绝对路径。

下面是一个完整的例子:

import glob
import os
import datetime

start_date = datetime.datetime(2021, 1, 1)
end_date = datetime.datetime(2021, 1, 31)

# 获取文件夹下所有文件的路径
files = glob.glob('path/to/folder/*.*')

# 迭代所有文件
for file in files:
    # 获取文件的创建时间和最后修改时间
    stat = os.stat(file)
    create_time = datetime.datetime.fromtimestamp(stat.st_ctime)
    modify_time = datetime.datetime.fromtimestamp(stat.st_mtime)
    
    # 判断文件是否在指定的日期范围内
    if start_date <= create_time <= end_date or start_date <= modify_time <= end_date:
        print(os.path.abspath(file))

该例子会打印符合指定日期范围的文件的绝对路径。