Csv 为什么\r在所有操作系统中的行为都像\n?
我注意到: 在Windows和Linux中,通过Python处理CSV文件时 我有以下代码:Csv 为什么\r在所有操作系统中的行为都像\n?,csv,formatting,Csv,Formatting,我注意到: 在Windows和Linux中,通过Python处理CSV文件时 我有以下代码: import csv list1 = [[1,'a'], [2,'b'], [3,'c']] with open('sample.csv', 'w') as wr: w = csv.writer(wr, lineterminator='\r') w.writerows(list1) 及 每次查看sample.csv文件时,都会得到相同的输出(在文本编辑器或Excel中): 我在我的Wi
import csv
list1 = [[1,'a'], [2,'b'], [3,'c']]
with open('sample.csv', 'w') as wr:
w = csv.writer(wr, lineterminator='\r')
w.writerows(list1)
及
每次查看sample.csv文件时,都会得到相同的输出(在文本编辑器或Excel中):
我在我的Windows 7中的Wordpad、Ms Excel中查看了这个sample.csv文件
Gedit文本编辑器,我的Ubuntu 16中的libreoffice calc
我甚至在我的windows和Ubuntu中用python IDLE查看了该文件
我甚至还做了一件事
Hexdump:
1,2,3
"a","b","c\rd"
当我在libreofficecalc中查看这个时,输出是
. 为什么不在此处添加换行符???系统通常接受
\n
、\r
和\r\n
中的任何一种换行符,因为这些换行符在过去已被广泛使用,取消对它们的支持只会毫无理由地中断工作,所以我投票以重复的方式结束这个问题。这回答了你的问题吗@r3mainer请看我的编辑LibreOffice的行为并不是一个操作系统特有的问题。如果在带引号的字符串中需要换行符,请尝试\n
。如果这不起作用,请尝试\r\n
或者使用@r3mainer I included libreoffice中的一个来表示\r在字段中的行为与\n不同。但当它被指定为行结束时,它充当\n
1,a
2,b
3,c
$ hexdump -c sample.csv
0000000 1 , a \r 2 , b \r 3 , c \r
000000c
$ hexdump -c sample.csv
0000000 1 , a \n 2 , b \n 3 , c \n
000000c
1,2,3
"a","b","c\rd"