我是python的新手。我正在尝试附加 CSV 文件。
代码正在工作。但是当我做 vitest2.csv
时,我看到行尾有一个^M
字符。
当我在Unix框中cat
或less
时,我看不到该字符。甚至CSV看起来还可以。
您能否告知可能出现的问题。
with open('test.csv','r') as csvfile:
csv_reader = csv.reader(csvfile)
next(csv_reader)
with open('test2.csv','a') as newfile:
csv_writer = csv.writer(newfile)
for line in 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')