导出文件中的^M字符,将其转换为换行符

4

我用Excel将CSV格式的文件导出,想要使用Python对其进行解析。然而,在我打开这个CSV文件的时候,我发现它所有内容都在同一行中,并且用^M字符代替了应该有的换行符。

Name, Value, Value2, OtherStuff ^M Name, Value, Value2, OtherStuff ^M

我已经解析了文件,修改了值并将其放入字符串中(使用csvreader中的'rU'模式)。但是该字符串没有换行符。所以我想知道,是否有一种方法可以在这个^M字符上分割字符串,或者用\n替换它?


那实际上是一个\r - SLaks
2个回答

3

^M 是 vim 显示 Windows 操作系统换行符的方式。

dos2unix 命令可以为您修复这些问题:

dos2unix my_file.csv

这是由于Windows/Unix上的不同行尾格式造成的。
在Windows上,它是\r\n
在Unix/Linux/Mac上,它只是\n^M实际上是vim向您显示Windows CR(回车符)或\r Python的open命令文档提供了有关处理通用换行符的更多信息:http://docs.python.org/2/library/functions.html#open

1
如果您在Unix系统上,有一个名为dos2unix(以及其对应的unix2dos)的程序,可以完成这种转换。

但是,它与以下内容几乎相同:

sed -i -e 's/$/\r/' file

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接