Подтвердить что ты не робот

Поддерживает ли Python csv-writer всегда использовать символы конца строки DOS?

Я понимаю, что библиотека 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'?

4b9b3361

Ответ 2

Как Никлас ответил, аргумент определителя позволяет вам выбирать окончание строки, Вместо того, чтобы жестко кодировать его до \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, окончание строк должно быть правильным на всех платформах.