我是python的新手。我正在尝试附加CSV文件。
代码正在工作。但是当我执行vi test2.csv时,我在行尾看到一个^ M字符。
[当我在Unix框内做的猫或更少时,我看不到该字符。甚至CSV看起来也不错。
您能告诉我可能是什么问题。
使用open('test.csv','r')作为csvfile:csv_reader = csv.reader(csvfile)下一个(csv_reader)使用open('test2.csv','a')作为新文件:csv_writer = csv.writer(newfile)对于csv_reader中的行:csv_writer.writerow(line)
CSV文件以(CR / LF)作为文件结尾,按标准:
https://en.wikipedia.org/wiki/Comma-separated_values
以(CR / LF)字符结尾的MS-DOS样式的行(对于最后一行)。
但是,您可以省略CR,并且大多数读者可以正常阅读此类文件。
vi
是Linux中的纯测试编辑器,对于文本文件,它仅期望LF并显示那些CR。
[Hamza Abdaoui提供了很好的参考https://unix.stackexchange.com/questions/32001/what-is-m-and-how-do-i-get-rid-of-it/32003#32003
任何专用的CSV阅读器都会正确处理(CR / LF)。例如,python csv模块执行此操作。因此,当您使用csv.reader
进行读取时,会丢弃CR。但是,当用csv.writer
保存时,它会强制(CR / LF)进入输出文件。
您可以使用lineterminator
更改这种行为>
csv_writer = csv.writer(newfile, lineterminator='\n')