Форматирование строки в Python приводит к ошибке файла не найден
Я новичок в Python и пытаюсь поработать с Pandas, чтобы поработать с несколькими CSV-файлами с предсказуемыми именами Log_(гггг / мм / дд).
То, что я планирую, достаточно просто, но открытие файла вызывает у меня проблемы.
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)
не решает проблему.
1 ответ
У вас есть две проблемы: ваше присвоение кортежа меняет значения дня и года, и вам нужно обнулить значения ниже 10. Вы фактически производите строку 'Log_10-1-2015'
не 'Log_2014-01-10'
,
Форматирование даты в строку проще всего сделать, оставив форматирование для объекта даты, а не извлекая отдельные компоненты самостоятельно:
today = date.today()
file_name = 'Log_{:%Y-%m-%d}'.format(today)
%
поля strftime()
инструкции форматирования, которые по умолчанию используют заполнение нулями.
Демо-версия:
>>> from datetime import date
>>> today = date.today()
>>> 'Log_{:%Y-%m-%d}'.format(today)
'Log_2015-01-11'
Да, это уже 11-й в моем часовом поясе.:-)