2014-02-07 34 views
0

我有一個程序嘗試使用open()命名文件使用包含日期時間信息的變量。代碼我已經是:在Python中打開()不工作使用文件名中涉及datetime.datetime.now()的變量

now = datetime.datetime.now() 
filename = ''.join(['log ', str(now), '.txt']) 
log = open(filename, mode = 'a') 

當我運行這段代碼,它給出了這樣的錯誤:

line 58, in <module> 
    log = open(filename, mode = 'a') 
OSError: [Errno 22] Invalid argument: 'log 2014-02-07 21:02:16.475880.txt' 

此代碼的工作,如果我有一個字符串替換open(filename),即使由錯誤輸出字符串。我也嘗試使用str()函數將filename格式化爲字符串,但返回相同的錯誤。

+2

冒號字符':'不是的Windows文件名允許入內。 –

回答

4

:字符在Windows文件系統上無效。

此外,可以考慮使用strftime函數的日期轉換爲字符串,而不是使用str()功能:

now = datetime.datetime.now().strftime('%Y%m%d-%H%M%S') 
+0

非常感謝你,這工作完美。除了現在它拋出這個錯誤: –

+0

@ user3285560錯誤消息沒有通過評論。嘗試編輯您的問題以包含它。 –