当我将这个字符串写入StringIO的格式更改时,该怎么办?使用csv.writer向StringIO写入字符串,为什么会添加额外的字符?
header = '\r\n'.join(
[unicode(line,'utf8') for line in
['"Text"',
'"More Text"',
'',]])
print header
输出:
"Text"
"More Text"
而现在将它添加到我的StringIO的:
si = StringIO.StringIO()
writer = csv.writer(si)
writer.writerow(header))
si.getvalue()
输出:
'"""",T,e,x,t,"""","\r","\n","""",M,o,r,e, ,T,e,x,t,"""","\r","\n"\r\n'
为什么加逗号和额外"
字符?
这是因为头已经是一个字符串,然后你遍历的那个人物,所以只是直接删除for循环和写头文件 – SirParselot
@SirParselot我看到,我的非StringIO代码工作的原因是因为它正在使用新行写入所有字符,但是一旦我写入.csv,新行就全部消失。我正在编辑我的问题,我的新问题... – steven
不,我的意思是'在标题循环中的行。 'header'是一个如此循环的字符串,它会给你每个字符,所以'line'实际上是一个字符。 – SirParselot