Запись в CSV с Python добавляет пустые строки

Я пытаюсь записать в CSV файл, но между ними есть пробелы. Как удалить пустые строки?

import csv
b = open('test.csv', 'w')
a = csv.writer(b)
data = [['Me', 'You'],\
        ['293', '219'],\
        ['54', '13']]
a.writerows(data)
b.close()

Ответ 1

Способ использования модуля csv изменен в Python 3 в нескольких отношениях (docs), по крайней мере, в отношении того, как вам нужно для открытия файла. Во всяком случае, что-то вроде

import csv
with open('test.csv', 'w', newline='') as fp:
    a = csv.writer(fp, delimiter=',')
    data = [['Me', 'You'],
            ['293', '219'],
            ['54', '13']]
    a.writerows(data)

должен работать.

Ответ 2

Если вы используете Python 2.x для Windows, вам нужно изменить свою линию open('test.csv', 'w') на open('test.csv', 'wb'). То есть вы должны открыть файл как двоичный файл.

Однако, как утверждают другие, интерфейс файла изменился в Python 3.x.

Ответ 3

import csv

hello = [['Me','You'],['293', '219'],['13','15']]
length = len(hello[0])

with open('test1.csv', 'wb') as testfile:
    csv_writer = csv.writer(testfile)
    for y in range(length):
        csv_writer.writerow([x[y] for x in hello])

будет выдавать такой вывод

Me You
293 219
13 15

Надеюсь, что это поможет

Ответ 4

Вам нужно открыть файл в двоичном режиме b, чтобы позаботиться о пустых строках в Python 2. Это не требуется в Python 3.

Итак, измените open('test.csv', 'w') на open('test.csv', 'wb').

Ответ 5

Pyexcel отлично работает с Python2 и Python3 без проблем.

Быстрая установка с пипсом:

pip install pyexcel

После этого выполняются только 3 строки кода и задание:

import pyexcel
data = [['Me', 'You'], ['293', '219'], ['54', '13']]
pyexcel.save_as(array = data, dest_file_name = 'csv_file_name.csv')