我从 excel 导出 CSV 以使用 python 解析。当我打开 vimmed CSV 时,我注意到应该是换行符的全部是 ^M 字符的一行。
Name, Value, Value2, OtherStuff ^M Name, Value, Value2, OtherStuff ^M
我对文件进行了解析,以便修改值并将其放入字符串中(在 csvreader 中使用“rU”模式)。但是,该字符串没有换行符。所以我想知道,有没有办法在这个 ^M 字符上分割字符串,或者用 \n 替换它?
我从 excel 导出 CSV 以使用 python 解析。当我打开 vimmed CSV 时,我注意到应该是换行符的全部是 ^M 字符的一行。
Name, Value, Value2, OtherStuff ^M Name, Value, Value2, OtherStuff ^M
我对文件进行了解析,以便修改值并将其放入字符串中(在 csvreader 中使用“rU”模式)。但是,该字符串没有换行符。所以我想知道,有没有办法在这个 ^M 字符上分割字符串,或者用 \n 替换它?
^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
如果您使用的是 unix 系统,则有一个名为dos2unix
(及其对应的程序unix2dos
)的程序将完全执行该转换。
但是,它与以下内容几乎相同:
sed -i -e 's/$/\r/' file