2013-07-19 89 views
4

我使用python將excel中的CSV導出爲解析。當我打開vim的CSV文件時,我注意到這是所有帶有換行符的^ M字符的行。^導出文件中的M個字符,轉換爲換行符

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

我具有文件解析,使得我修改值,並把轉換成字符串(使用csvreader「的rU」模式)。但是,該字符串沒有換行符。所以我想知道,有沒有辦法在這個^ M字符上拆分字符串,或者用\ n來替換它的方式?

+0

這實際上是一個'\ r'。 – SLaks

回答

3

^M是VIM顯示Windows如何結束的行的

dos2unix命令應該解決那些爲你:

dos2unix my_file.csv 

這是由於在Windows/Unix下的不同的EOL格式。

在Windows上,它是\r\n

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

^M實際上是VIM您展示窗口CR(回車)或\r

蟒蛇open命令文檔有關於處理Universal Newlines的更多信息:http://docs.python.org/2/library/functions.html#open

1

如果您在一個unix系統,有一個名爲dos2unix(及其對應unix2dos)的程序,它將完成該轉換。

但是,這幾乎是一樣的東西是這樣的:

sed -i -e 's/$/\r/' file 
相關問題