Ven*_*tta 35 python csv line-endings writer
我意识到Python 中的csv库总是生成DOS行尾字符.即使我使用该'wb'模式,即使我使用Linux.
import csv
f = open('output.txt', 'wb');
writer = csv.writer(f)
writer.writerow([2,3,4]);
f.close()
Run Code Online (Sandbox Code Playgroud)
以上代码始终'\r\n'用作行结束分隔符.我怎样才能使用它'\n'?
Nik*_* B. 65
您可以在构造函数中为您的writer实例提供自定义lineterminator参数:
writer = csv.writer(f, lineterminator="\n")
Run Code Online (Sandbox Code Playgroud)
Don*_*kby 24
正如Niklas 所说,lineterminator参数允许您选择行结尾.而不是硬编码\n,通过使用平台的行分隔符使其独立于平台:os.linesep.
import csv
import os
f = open('output.csv', 'wb')
writer = csv.writer(f, lineterminator=os.linesep)
writer.writerow([2,3,4])
f.close()
Run Code Online (Sandbox Code Playgroud)
对于发现这篇文章的其他人,请不要错过'wb'.如果你在GNU/Linux等某些平台上遗漏它,你就不会发现问题,但重要的是在平台上以二进制模式打开文件,比如Windows.否则,csv文件最终可能会出现行结尾\r\r\n.如果您使用'wb'和os.linesep,您的行结尾应该在所有平台上都是正确的.