在我的代码中,我打开了一个文件,我想在文件中附加当前的日期和时间。我正在使用datetime来获取日期
currenttime = datetime.datetime.now()
并将当前日期/时间分配给名为“currenttime”的变量
print(currenttime)
with open("log.txt", "a") as f:
log.write(currenttime)
当我尝试这样做时,我收到错误:
TypeError: write() argument must be str, not datetime.datetime
答案 0 :(得分:2)
这是因为您尝试将日期时间对象写入文本文件。您可以通过几种不同的方式转换datetime对象以使其可写,例如:
str(currenttime)
或
currenttime.isoformat()
即:
with open("log.txt", "a") as f:
f.write(str(currenttime))
如果您想使用时间戳的特殊格式,可以使用strftime
,例如:
In [1]: datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
Out[1]: '2016-03-01 23:52:36'
您可以在此处详细了解如何格式化日期时间:https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
从您的文件名称和您添加时间戳的事实来看,如果日志记录是您想要的,那么在python中查看日志记录模块可能是个好主意。它非常适合于此目的,而不是手动写入文件:https://docs.python.org/2/library/logging.html
答案 1 :(得分:2)
将currenttime
转换为带str()
的字符串:
with open("log.txt", "a") as f:
f.write(str(currenttime))
请注意,您应该使用f.write()
而不是log.write()
写入您的文件。
答案 2 :(得分:1)
Typecast datetime
对象str
log.write(str(currenttime))