格式化 Python 中的字符串给我一个找不到文件的错误

Formatting a string in Python is giving me a file not found error

我是 python 的新手,正在尝试与 Pandas 一起使用几个具有可预测名称的 .csv 文件,Log_(yyyy/mm/dd).

我的计划很简单,但打开文件时遇到问题。

today = date.today()
m,d,y = today.month, today.day, today.year

file_name = 'Log_{}-{}-{}'.format(y,m,d)
pd.read_csv(file_name)

这会给我一个错误,但这有效

file_name = 'Log_2015-01-10'
pd.read_csv(file_name)

他们打印同样的东西,str(file_name) 没有解决问题。

您有两个问题:您的元组赋值交换了日期和年份值,并且您需要对 10 以下的值进行零填充。您实际上生成的是字符串 'Log_10-1-2015',而不是 'Log_2014-01-10'

将日期格式化为字符串最简单,方法是将格式化留给日期对象而不是自己提取各个组件:

today = date.today()
file_name = 'Log_{:%Y-%m-%d}'.format(today)

% 字段 strftime() formatting instructions 默认使用零填充。

演示:

>>> from datetime import date
>>> today = date.today()
>>> 'Log_{:%Y-%m-%d}'.format(today)
'Log_2015-01-11'

是的,在我所在的时区已经是 11 号了。 :-)