You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从含日期后缀的目录加载最新月份CSV至Pandas DataFrame?

基于文件名中的日期获取最新CSV文件并加载到Pandas DataFrame

我有一个目录,里面包含一系列命名格式固定的CSV文件,示例如下:

  • sacoronavirus_total_number_vaccinated_type_2022-04-30.csv
  • sacoronavirus_total_number_vaccinated_type_2022-05-31.csv
  • sacoronavirus_total_number_vaccinated_type_2022-06-30.csv

该目录会每月新增同格式的文件(比如后续的2022-09-30.csv、2022-10-31.csv),同时目录中还有其他不同前缀的无关文件。我需要基于文件名中的日期字符串找到最新月份的CSV文件,并将其加载到Pandas DataFrame中,而非依赖文件的创建/修改时间。

现有代码通过文件元数据的创建时间获取最新文件,但不符合需求:

import glob
import os

list_of_files = glob.glob('/path/to/folder/*') # * 表示所有文件,如需特定格式可改为*.csv
latest_file = max(list_of_files, key=os.path.getctime)
print(latest_file)

实现步骤

  1. 精准匹配目标文件:用glob筛选出特定前缀的CSV文件,避免无关文件干扰;
  2. 提取文件名中的日期:从每个目标文件名中提取日期字符串;
  3. 筛选最新日期的文件:利用ISO格式日期字符串的字典序与时间顺序一致的特性,找到对应最新日期的文件;
  4. 加载到Pandas DataFrame:用pandas.read_csv()读取目标文件。

完整代码

import glob
import pandas as pd

# 替换为你的目标目录路径
folder_path = '/path/to/folder/'
# 匹配特定前缀的CSV文件,排除其他无关文件
pattern = folder_path + 'sacoronavirus_total_number_vaccinated_type_*.csv'
file_list = glob.glob(pattern)

if not file_list:
    raise FileNotFoundError("未找到符合格式的目标CSV文件")

# 从文件名中提取日期字符串
def extract_date_from_filename(filename):
    # 文件名格式固定,日期部分在最后一个下划线之后、.csv之前
    return filename.split('_')[-1].replace('.csv', '')

# 找到日期最新的文件
latest_file = max(file_list, key=lambda x: extract_date_from_filename(x))

# 加载到Pandas DataFrame
df = pd.read_csv(latest_file)
print(f"已加载最新文件: {latest_file}")

代码说明

  • glob的匹配模式确保只获取目标前缀的文件,不会包含其他无关文件;
  • 文件名中的日期为YYYY-MM-DD的ISO格式,直接比较字符串即可得到正确的时间顺序;
  • 加入空列表判断,避免因没有目标文件导致后续代码报错。

内容的提问来源于stack exchange,提问作者Mazil_tov998

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:40:35