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

Python如何根据动态日期变量查找对应名称的CSV文件?

问题原因

  • 你把fnmatch.filter的匹配模式写死成了字符串常量'todays_date_name_string*.csv',程序只会匹配文件名开头是todays_date_name_string这个字面量的文件,根本不会调用你之前定义的同名变量,这是空列表的核心诱因。
  • 代码缺少import os和import fnmatch的导入语句,正常运行会直接报错,你能拿到空列表说明可能是运行环境之前已经导入过相关依赖,建议补全导入语句避免异常。
  • 路径'P:directory/'的写法不符合Windows盘符路径规范,建议改成'P:/directory/'或者原始字符串r'P:\directory\'避免转义问题。

修正后代码

import pandas as pd
import os
import fnmatch

todays_date = pd.to_datetime('today').strftime('%Y%m%d')
# 拼接变量到匹配模式,不要把变量名放到引号内部
todays_date_pattern = f'unchanging part of filename {todays_date}*.csv'
# 修正路径格式
var1 = fnmatch.filter(os.listdir('P:/directory/'), todays_date_pattern)
print(var1)

额外排查点

如果修正后还是返回空列表,可以按以下步骤排查:

  • 先打印os.listdir('P:/directory/')的输出,确认目标CSV文件确实在对应路径下,文件名的固定部分、空格、日期格式和你写的规则完全一致
  • 确认生成的日期格式和文件的日期格式匹配,比如如果文件里的日期是2024-05-20格式,就把strftime的参数改成'%Y-%m-%d'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:36:04