如何获取文件夹中最新创建的2个文件的日期?
获取指定文件夹中最新创建的2个文件的日期
下面是针对你需求的具体实现方案,用Python标准库就能搞定,适合新手理解:
核心实现代码(推荐用Pathlib,更简洁直观)
from pathlib import Path import datetime # 替换成你要查询的文件夹路径 target_folder = Path("/Users/xxx/Documents/test") # 筛选文件夹下的所有文件(排除子目录),按创建时间倒序排序 sorted_files = sorted( [f for f in target_folder.iterdir() if f.is_file()], key=lambda file: file.stat().st_ctime, reverse=True ) # 提取最新的2个文件及其创建时间 latest_two = sorted_files[:2] for idx, file in enumerate(latest_two, 1): # 将时间戳转为易读的datetime对象 create_datetime = datetime.datetime.fromtimestamp(file.stat().st_ctime) print(f"第{idx}新文件: {file.name},创建时间: {create_datetime.strftime('%Y-%m-%d %H:%M:%S')}") # 示例:和特定日期对比 compare_date = datetime.datetime(2024, 6, 1) for file in latest_two: create_datetime = datetime.datetime.fromtimestamp(file.stat().st_ctime) if create_datetime > compare_date: print(f"{file.name} 的创建时间晚于 {compare_date.strftime('%Y-%m-%d')}") else: print(f"{file.name} 的创建时间早于/等于 {compare_date.strftime('%Y-%m-%d')}")
关键细节说明
- 关于创建时间的兼容性:
- Windows系统中
st_ctime就是文件的创建时间 - Unix/Linux系统中
st_ctime是文件元数据的最后修改时间,如果要获取Unix系统下的文件创建时间,可替换为file.stat().st_birthtime(仅支持macOS和部分Linux发行版) - 如果需要的是文件最后修改时间而非创建时间,改用
file.stat().st_mtime即可
- Windows系统中
- 异常处理(可选但实用):如果怕路径错误或权限问题,可添加异常捕获:
try: sorted_files = sorted( [f for f in target_folder.iterdir() if f.is_file()], key=lambda file: file.stat().st_ctime, reverse=True ) except FileNotFoundError: print("错误:指定的文件夹不存在,请检查路径!") except PermissionError: print("错误:没有访问该文件夹的权限!")
内容的提问来源于stack exchange,提问作者LearningPython
相关产品推荐
相关产品推荐

