我是一个py新手,想知道是否有更简单的方法将时间连接到写入函数中的字符串?这是我的代码运行带有activepy 2.6的Windows XP:
from time import clock
filename = "c:\Python\\test.txt"
try:
tm = clock()
print "filename: " + filename
fsock = open(filename, "a")
try:
fsock.write(tm + 'test success\n ')
finally:
fsock.close()
except IOError:
print "file not found"
print file(filename).read()
C:\Python>python test.py
filename: c:\Python\test.txt
Traceback (most recent call last):
File "test.py", line 8, in <module>
fsock.write(tm + 'test success\n ')
TypeError: unsupported operand type(s) for +: 'float' and 'str'
C:\Python>
答案 0 :(得分:7)
使用pythons str.format
fsock.write('{0} test success\n'.format(tm))
答案 1 :(得分:6)
time.clock
返回系统运行持续时间的机器可读表示。
要获取当前挂历时间的人类可读表示(字符串),请使用time.strftime
:
>>> import time
>>> tm = time.strftime('%a, %d %b %Y %H:%M:%S %Z(%z)')
>>> tm
'Mon, 08 Aug 2011 20:14:59 CEST(+0200)'
答案 2 :(得分:0)
您应首先使用str()转换为字符串:
str(tm) + 'test success\n'
答案 3 :(得分:0)
最好的办法是使用字符串format()
方法:
fsock.write('{0} test success\n'.format(tm))
旧方法是:
fsock.write('%f test success\n'%(tm))
最后,您可以这样做:
fsock.write(str(tm) + 'test success\n')
答案 4 :(得分:0)
您可以使用格式字符串来包含任何浮点数(就像您在tm变量中所拥有的浮点数)和类似的字符串:
str = '%f test success\n' % tm
fsock.write(str)
我个人认为这是Python中字符串格式最清晰,最灵活的方式。