Запись в 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()
76 голосов | спросил user2031063 4 FebruaryEurope/MoscowbMon, 04 Feb 2013 23:03:17 +0400000000pmMon, 04 Feb 2013 23:03:17 +040013 2013, 23:03:17

4 ответа


0

То, как вы используете модуль 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)

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

ответил DSM 4 FebruaryEurope/MoscowbMon, 04 Feb 2013 23:15:43 +0400000000pmMon, 04 Feb 2013 23:15:43 +040013 2013, 23:15:43
0

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

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

ответил Wilduck 4 FebruaryEurope/MoscowbMon, 04 Feb 2013 23:05:36 +0400000000pmMon, 04 Feb 2013 23:05:36 +040013 2013, 23:05:36
0

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

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

ответил Aditya 4 FebruaryEurope/MoscowbMon, 04 Feb 2013 23:06:57 +0400000000pmMon, 04 Feb 2013 23:06:57 +040013 2013, 23:06:57
0

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

Быстрая установка с помощью pip:

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')
ответил Danny Lessio 23 MarpmWed, 23 Mar 2016 15:59:18 +03002016-03-23T15:59:18+03:0003 2016, 15:59:18

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132