2012-05-15 448 views
73

這裏是一個功能代碼(創建成功文件)如何用python中的當前日期和時間創建文件名?

sys.stdout = open('filename1.xml', 'w') 

現在我想的名字與當前日期時間的文件(我不是在蟒蛇專家)

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S") 
sys.stdout = open(filename1 + '.xml', 'w') 

我想寫出一個具有確切日期和時間的文件名,它是一個xml文件,程序已經創建,我只需要命名該文件。上面的代碼不起作用。

將帖子 - 錯誤雖然沒有使用datetime返回

File "./fix.py", line 226, in <module> 
    filenames = datetime.now().strftime("%Y%m%d-%H%M%S") 
AttributeError: 'module' object has no attribute 'now' 
+0

你需要'filename'和'datetime'之間的'=' –

+0

除此之外,「上面的代碼無法工作」究竟如何? –

+0

當提出這樣的問題時,「不工作」是不夠的。準確描述它是如何失敗的。 –

回答

160

,這能解決你獲得與當前時間和日期格式的字符串的問題(回答你的問題)指定:

import time 
timestr = time.strftime("%Y%m%d-%H%M%S") 
print timestr 

產量:

20120515-155045 

所以你的文件名可以附加或使用這個字符串。

+1

難題!時間沒有在我的腳本中定義,我試圖使用timedate(不工作,我不知道爲什麼),但隨着時間的推移現在很清楚,文件名是成功創建的。非常感謝! – B4NZ41

+2

我不知道你爲什麼接受這個答案,當有兩個答案完全解釋問題中代碼的錯誤。沒有任何違反Levon這樣做的方式,它工作正常,但是當你說「不工作,我不知道爲什麼」時,這看起來很奇怪,因爲你有答案可以解釋爲什麼。 –

+0

當我嘗試上面的代碼時,我收到了一個「E AttributeError:'int'對象沒有屬性'strftime'」錯誤。 – rwbyrd

26

now是模塊datetime中類datetime中的類方法。因此,你需要

datetime.datetime.now() 

或者你也可以使用一個不同的導入

from datetime import datetime 

完成這種方式可以讓你用datetime.now按在問題的代碼。

+0

感謝您的回報! – B4NZ41

+0

+1替代導入,我也會寫。 –

14

改變這一行

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S") 

filename1 = datetime.datetime.now().strftime("%Y%m%d-%H%M%S") 

注意額外datetime。另外,改變你的 import datetimefrom datetime import datetime

+1

謝謝,我只用了時間。 – B4NZ41

+1

@ B4NZ41事實並非如此。該錯誤消息清楚地表明您的代碼在某處具有'import datetime'。 –

+0

;)對不起!現在,我在使用導入日期時間之前使用導入時間 – B4NZ41

3

我很驚訝,沒有一個返回默認的(安全)「爲文件名追加」一些單格式 - 的時間格式, 我們可以簡單的寫FD.write('mybackup'+time.strftime('%(formatter here)') + 'ext'

"%x" instead of "%Y%m%d-%H%M%S" 
+0

完全同意。非常令人驚訝的是,一個不存在。我們必須錯過一些東西。 – Shaun

相關問題