Форматирование строки в 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-й в моем часовом поясе.:-)

Другие вопросы по тегам