如何用Python获取文件夹中近N天内修改的所有Zip文件?
获取近N天内修改的Zip文件
要筛选出近N天内修改的所有Zip文件,核心思路是先计算时间阈值,再逐个检查文件的修改时间是否在阈值范围内,具体实现如下:
实现步骤
- 计算时间阈值:用当前时间减去N天的总秒数,得到一个时间戳,只有修改时间晚于这个时间戳的文件才符合要求。
- 遍历目标目录下的Zip文件:用
glob.iglob()替代glob.glob(),避免一次性加载所有文件路径到内存,适合文件数量较多的场景。 - 筛选符合条件的文件:通过
os.path.getmtime()获取文件的最后修改时间(如果需要判断创建时间,Windows下用os.path.getctime(),Unix系统下getctime是元数据修改时间,需注意区别),和阈值对比后收集符合条件的文件。
代码示例
import os import glob import time # 设置要筛选的天数 days = 2 # 计算时间阈值:当前时间减去days天的秒数 time_threshold = time.time() - days * 24 * 60 * 60 # 遍历目录下所有zip文件,用iglob生成器逐个处理 recent_files = [] for file_path in glob.iglob('*.zip'): # 获取文件最后修改时间的时间戳 file_mtime = os.path.getmtime(file_path) if file_mtime >= time_threshold: recent_files.append(file_path) # 输出结果 for file in recent_files: print(file)
关键说明
time.time()返回当前时间的时间戳(秒数),days * 24 * 60 * 60是N天对应的总秒数,两者相减得到阈值。os.path.getmtime(file_path)获取文件内容最后被修改的时间,若你需要的是文件创建时间,Windows系统可替换为os.path.getctime(file_path),Unix系统则需要额外处理(比如用stat模块的st_birthtime)。- 使用
glob.iglob()可以避免一次性加载大量文件路径,在文件数量较多时能提升效率,减少内存占用。
内容的提问来源于stack exchange,提问作者JackJack
相关产品推荐
相关产品推荐

