4

我从 excel 导出 CSV 以使用 python 解析。当我打开 vimmed CSV 时,我注意到应该是换行符的全部是 ^M 字符的一行。

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

我对文件进行了解析,以便修改值并将其放入字符串中(在 csvreader 中使用“rU”模式)。但是,该字符串没有换行符。所以我想知道,有没有办法在这个 ^M 字符上分割字符串,或者用 \n 替换它?

4

2 回答 2

3

^M是vim如何显示windows end-of-line的

dos2unix命令应该为您解决这些问题:

dos2unix my_file.csv

这是由于 Windows/Unix 上不同的 EOL 格式。

在窗户上,它是\r\n

在 Unix/Linux/Mac 上,它只是\n

^M实际上是 vim 向您显示 windows CR(回车)或\r

pythonopen命令文档有更多关于处理通用换行符的信息:http: //docs.python.org/2/library/functions.html#open

于 2013-07-19T17:52:43.350 回答
1

如果您使用的是 unix 系统,则有一个名为dos2unix(及其对应的程序unix2dos)的程序将完全执行该转换。

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

sed -i -e 's/$/\r/' file
于 2013-07-19T17:53:33.033 回答