4

我有一串文字。该字符串中有多个换行符。我想创建一个包含此字符串的 csv,以便将其导入 excel。但是,正因为如此,我相信我必须将所有新行转换为回车并将文本用引号引起来。

但是,当尝试转换少量文本时,我得到以下结果:

>>> abc = "\nA\nB\nC\nD\nE\nF\nG\n\n"
>>> print abc

A
B
C
D
E
F
G

>>> xyz = abc.replace('\n','\r')
>>> xyz
'\rA\rB\rC\rD\rE\rF\rG\r\r'
>>> print xyz
G

任何想法我做错了什么?

4

3 回答 3

4

使用Pythoncsv模块,它已经知道如何做到这一点。

import csv
with open('xyz.csv', 'wb') as outfile:
  w = csv.writer(outfile)
  w.writerow(['a\nb\nc'])

运行后,您可以检查输出(-AGNU cat 上的 , 显示不可打印字符的表示):

$ cat -A xyz.csv 
"a$
b$
c"^M$

请注意,您还可以使用cat -A来查看为什么您之前的实现似乎做错了事情。

于 2013-06-24T14:40:53.073 回答
3

尝试将该字符串写入文件并在文本编辑器中查看它。

您的控制台将回车解释为“返回到行首”,因此 A 打印,然后 B 打印 A 所在的位置,依此类推,直到 G 打印在 F 所在的位置。

于 2013-06-24T14:39:37.930 回答
0

利用:

xyz = abc.replace('\n','\r\n')
于 2013-06-24T14:55:04.010 回答