【发布时间】:2016-02-19 20:30:07
【问题描述】:
当我将此字符串写入 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'
为什么要添加逗号和额外的" 字符?
【问题讨论】:
-
这是因为 header 已经是一个字符串,然后你循环它的字符,所以只需删除 for 循环并将 header 直接写入文件
-
@SirParselot 我明白了,我的非 StringIO 代码工作的原因是因为它写入的所有字符之间都带有换行符,但是一旦我写入 .csv,换行符都会消失。我正在用我的新问题编辑我的问题...
-
不,我的意思是
for line in header循环。header是一个字符串,因此循环遍历它会给你每个字符,所以line真的是一个字符 -
@SirParselot 抱歉,由于我之前的示例,现在一切都令人困惑。让我删除它。第二个代码块本身没有
for循环,但仍然写得很有趣。 -
好吧,我不知道额外的引号,但您可以通过在标题周围添加
[]来解决大部分问题,因为它需要一个列表
标签: python python-2.7 csv