python:你如何连接字符串的时间?

时间:2011-08-08 18:10:22

标签: python

我是一个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>

5 个答案:

答案 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中字符串格式最清晰,最灵活的方式。