2015-01-11 53 views
-2

我是python的新手,試圖與熊貓一起使用幾個具有可預測名稱Log_(yyyy/mm/dd)的.csv文件來完成一些工作。在Python中格式化字符串給我找不到文件錯誤

我的計劃很簡單,但打開文件給我的問題。

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)不能解決問題。

+0

'm,d,y = today.month,today.year,today.day'這是錯誤的,應該是'm,y,d' – GLHF

回答

0

您有兩個問題:您的元組賦值交換日期和年份值,並且需要將值填充到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位。 :-)

+0

奇怪的是,我第一個錯誤是一個錯字我發佈這個,我把格式轉換成你寫的,並且它工作正常,謝謝。 – user4441204