Примечание: кажется, что это не предпочтительное решение из-за того, как добавлялась дополнительная строка в системе Windows.Как указано в документе python :
Если csvfile является файловым объектом, он должен открываться с флагом 'b' на платформах, где это имеет значение.
Windows - одна из таких платформ, где это имеет значение.Хотя изменение разделителя строки, как я описал ниже, возможно, решило проблему, проблему можно полностью избежать, открыв файл в двоичном режиме.Можно сказать, что это решение более «элегантно».В этом случае «путаница» с ограничителем строки, вероятно, привела бы к непереносимости кода между системами, когда открытие файла в двоичном режиме в системе Unix не дает никакого эффекта.то есть.это приводит к кросс-системно-совместимому коду.
Из Python Docs :
В Windows добавленный к режиму 'b' открывает файл в двоичном режиме,поэтому существуют также режимы, такие как 'rb', 'wb' и 'r + b'.Python в Windows делает различие между текстовыми и двоичными файлами;символы конца строки в текстовых файлах автоматически слегка изменяются при чтении или записи данных.Это закулисное изменение данных файла подходит для текстовых файлов ASCII, но оно повредит двоичные данные, подобные этим в файлах JPEG или EXE.Будьте очень осторожны, используя двоичный режим при чтении и записи таких файлов.В Unix не помешает добавить 'b' в режим, поэтому вы можете использовать его независимо от платформы для всех двоичных файлов.
Оригинал :
Как часть необязательных параметров для csv.writer, если вы получаете дополнительные пустые строки, вам, возможно, придется изменить терминатор строки (информация здесь ).Приведенный ниже пример адаптирован со страницы python csv docs. Измените его с '\ n' на тот, каким он должен быть.Поскольку это всего лишь попытка решить проблему, это может или не может сработать, но это мое лучшее предположение.
>>> import csv
>>> spamWriter = csv.writer(open('eggs.csv', 'w'), lineterminator='\n')
>>> spamWriter.writerow(['Spam'] * 5 + ['Baked Beans'])
>>> spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])