2012-03-28 51 views
0

我想在python中打開一個文本文件。在下面的代碼:File = open()在文件名錯誤輸出中使用日期,Python

import datime 
from datetime import datetime 

today = datetime.now() 
sitename = "Soil Report" 
rptFolder = r"C:\Template_Outputs\Production Reports" 

file = open(rptFolder + "\\" + sitename + "_" + today.strftime("%y%b%d_%H:%M:%S") + ".txt", "w") 

我不斷收到以下錯誤:

[Errno 22] invalid mode ('w') or filename:

我已經收窄的設置文件名的日期。它似乎並不喜歡這樣(即我剛剛用「測試」替換了today.strftime(「%y%b%d_%H:%M:%S」)並且它工作)

我已經還嘗試將日期設置爲字符串以將其轉換爲文件名,例如:

str(today.strftime("%y%b%d_%H:%M:%S")) 

也沒有運氣。

我需要文件名中的時間戳,因爲它較大的腳本可能在短時間內很有趣。

有什麼我在這裏失蹤?

回答

2

如果你在做Windows,Windows不允許帶有冒號(:)的文件。嘗試從這裏卸下你的結腸:

str(today.strftime("%y%b%d_%H:%M:%S")) 

,並看看會發生什麼

+1

Microsoft提供[此參考資料](http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa365247%28v=vs.85%29.aspx)有關文件名和允許的字符。 – larsks 2012-03-28 20:09:08

+0

非常感謝。那樣做了! – Mike 2012-03-28 20:09:22

1

冒號通常不允許在文件名中。用下劃線替換。 另外,如果您每秒運行多個文件,您可能需要在最後包含毫秒,納秒或隨機數。

+0

非常感謝和補充建議。好想法! – Mike 2012-03-28 20:09:54

1

Windows上的文件名不能包含冒號(:)。

相關問題