如何用python中的当前date和时间创build一个文件名?

这是一个function代码(创build成功的文件)

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

现在我试图用当前的date时间命名文件(我不是Python的专家)

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

我想写出一个具有确切date和时间的文件名,它是一个XML文件,该程序已经创build,我只需要命名该文件。 上面的代码不起作用。

[编辑] – 错误返回

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

虽然不使用datetime ,这解决了您的问题(回答您的问题)获取您指定的当前时间和date格式的string:

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

收益率:

 20120515-155045 

所以你的文件名可以附加或使用这个string。

now是模块datetimedatetime中的类方法。 所以你需要

 datetime.datetime.now() 

或者你可以使用不同的导入

 from datetime import datetime 

完成这种方式允许您按照问题中的代码使用datetime.now

改变这一行

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

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

请注意额外的datetime 。 或者,将您的import datetime时间更改为from datetime import datetime

我很惊讶没有一个单一的格式化程序返回一个默认的(和安全的)“附加文件名” – 格式的时间,我们可以简单地写FD.write('mybackup'+time.strftime('%(formatter here)') + 'ext'

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