【发布时间】:2009-11-29 11:41:34
【问题描述】:
e = ('ham', 5, 1, 'bird')
logfile.write(','.join(e))
我必须加入它才能将其写入文本文件。
【问题讨论】:
-
顺便说一句,你知道你可以不用括号写你的第一行吗?消除本质上的噪音是件好事。
e = ('ham', 5, 1, 'bird')
logfile.write(','.join(e))
我必须加入它才能将其写入文本文件。
【问题讨论】:
join 只接受字符串列表,所以先转换它们
>>> e = ('ham', 5, 1, 'bird')
>>> ','.join(map(str,e))
'ham,5,1,bird'
或者更pythonic
>>> ','.join(str(i) for i in e)
'ham,5,1,bird'
【讨论】:
str() 通常是你想向用户展示的东西(即在日志文件中,这是 OP 想要的)。
您最好先将元组转换为列表:
e = ('ham', 5, 1, 'bird')
liste = list(e)
','.join(liste)
【讨论】:
join() 仅适用于字符串,不适用于整数。使用','.join(str(i) for i in e)。
【讨论】:
使用csv 模块。它将保存一个关于如何处理包含逗号的项目的后续问题,然后是另一个关于处理包含您用来引用/转义逗号的字符的项目的问题。
import csv
e = ('ham', 5, 1, 'bird')
with open('out.csv', 'wb') as f:
csv.writer(f).writerow(e)
检查一下:
print open('out.csv').read()
输出:
ham,5,1,bird
【讨论】: