通过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_date和end_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))
该例子会打印符合指定日期范围的文件的绝对路径。
