Python 2 устройство записи CSV производит неправильный разделитель строки в Windows

МОК / DI мне выставляет зависимости к вызывающим объектам. Супер простой.

нетехнический ответ является способностью выгрузить механизм в автомобиле прямо перед включением его. Если все поднимает трубку право (интерфейс), Вы хороши.

43
задан smci 29 August 2016 в 02:29
поделиться

1 ответ

В Python 2.x всегда открывайте файл в двоичном режиме, как описано в документации. csv записывает \ r \ n , как вы и ожидали, но затем включается базовый механизм текстового файла Windows и меняет этот \ n на \ r \ n ... общий эффект: \ r \ r \ n

Из документации csv.writer :

Если csvfile является файловым объектом , он должен открываться флагом 'b' на платформах, где это имеет значение.

Кажется, есть некоторая сдержанность в том, чтобы на самом деле произносить имя главного виновника: -)

Править : Как упоминалось @jebob в комментариях к этому ответу и на основе ответа @Dave Burton , для обработки этого случая как в Python 2, так и в 3, вы должны сделать следующее:

if sys.version_info >= (3,0,0):
    f = open(filename, 'w', newline='')
else:
    f = open(filename, 'wb')
65
ответ дан 26 November 2019 в 22:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: