Ответ 1
Вы можете предоставить свой writer
экземпляр lineterminator
в конструкторе:
writer = csv.writer(f, lineterminator="\n")
Я понимаю, что библиотека csv в Python всегда генерирует символы конца строки DOS. Даже если я использую режим 'wb'
, даже если я использую Linux.
import csv
f = open('output.txt', 'wb');
writer = csv.writer(f)
writer.writerow([2,3,4]);
f.close()
В приведенном выше коде всегда используется '\r\n'
как разделитель конца строки. Как я могу использовать его только '\n'
?
Вы можете предоставить свой writer
экземпляр lineterminator
в конструкторе:
writer = csv.writer(f, lineterminator="\n")
Как Никлас ответил, аргумент определителя позволяет вам выбирать окончание строки, Вместо того, чтобы жестко кодировать его до \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()
Для других, кто находит этот пост, не пропустите 'wb'
. Вы не заметите проблемы, если вам не хватает ее на некоторых платформах, таких как GNU/Linux, но важно открыть файл в двоичный режим на платформах, где это имеет значение, например Windows. В противном случае файл csv может закончиться концами строк, например \r\r\n
. Если вы используете 'wb'
и os.linesep
, окончание строк должно быть правильным на всех платформах.