我使用python从excel导出CSV到解析。当我打开vimmed的CSV时,我注意到它只是一行^ M字符应该是新行。
Name, Value, Value2, OtherStuff ^M Name, Value, Value2, OtherStuff ^M
我对文件进行了解析,以便修改值并将其放入字符串中(在csvreader中使用“rU”模式)。但是,该字符串没有换行符。所以我想知道,有没有办法在这个^ M字符上拆分字符串,或者用\ n来替换它?
答案 0 :(得分:3)
^M
是vim如何显示windows end-of-line的
dos2unix
命令应该为您解决这些问题:
dos2unix my_file.csv
这是由于Windows / Unix上的EOL格式不同。
在Windows上,它是\r\n
在Unix / Linux / Mac上,它只是\n
^M
实际上是vim,向您显示Windows CR(回车)或\r
python open
命令文档提供了有关处理通用换行符的更多信息:http://docs.python.org/2/library/functions.html#open
答案 1 :(得分:1)
如果您使用的是unix系统,则会有一个名为dos2unix
的程序(及其对应的unix2dos
)将完全执行该转换。
但是,它几乎与以下内容相同:
sed -i -e 's/$/\r/' file