如何获取目录内最新2个csv路径以创建Pandas DataFrame
获取目录下最新2个CSV文件路径的实现方案
你原有代码仅能获取1个文件的原因是:max() 函数仅会返回迭代对象中的单个最大值,无法同时拿到多个排序后的结果。
你可以通过sorted()对目录下所有CSV文件按修改时间倒序排列,直接通过下标获取最新的两个文件,参考实现如下:
from pathlib import Path import pandas as pd # 替换为你的CSV文件存放目录 csv_root = Path("/home/user/some_folder/") # 筛选所有csv文件,按修改时间倒序排序,最新文件排在列表首位 sorted_csv = sorted( csv_root.glob("*.csv"), key=lambda file: file.stat().st_mtime, reverse=True ) # 提前校验文件数量,避免索引报错 if len(sorted_csv) < 2: raise Exception(f"当前目录下仅找到{len(sorted_csv)}个CSV文件,至少需要2个才可执行合并") # 按需求分配左右df路径,当前配置为次新文件作为左df、最新文件作为右df,可自行调整下标顺序 left_path = sorted_csv[1] right_path = sorted_csv[0] # 后续读取、合并、清洗逻辑和你原有逻辑一致即可 df_left = pd.read_csv(left_path) df_right = pd.read_csv(right_path)
补充说明
- 如果你需要按文件创建时间排序,可将排序规则中的
st_mtime替换为st_ctime,注意st_ctime在部分Unix系统中表示的是文件属性变更时间,新增文件的st_mtime和创建时间一致,兼容性更好 - 如果你是从两个独立目录分别取最新的1个文件作为左右df,只需要对两个目录分别执行上述排序逻辑,取每个目录排序后的下标
[0]的文件即可
内容的提问来源于stack exchange,提问作者DECROMAX
相关产品推荐
相关产品推荐

