Pregunta Escribir en CSV con Python agrega líneas en blanco [duplicar]


Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de escribir en el archivo CSV, pero hay filas en blanco en el medio. ¿Cómo puedo eliminar las filas en blanco?

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

76
2018-02-04 19:03


origen


Respuestas:


La forma en que usas el csv módulo cambiado en Python 3 en varios aspectos (documentos), al menos con respecto a cómo necesita abrir el archivo. De todos modos, algo así como

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)

Deberia trabajar.


113
2018-02-04 19:15



Si usa Python 2.x en Windows, necesita cambiar su línea open('test.csv', 'w') a open('test.csv', 'wb'). Es decir, debería abrir el archivo como archivo binario.

Sin embargo, según lo manifestado por otros, la interfaz del archivo ha cambiado en Python 3.x.


21
2018-02-04 19:05



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])

producirá una salida como esta

Me You
293 219
13 15

Espero que esto ayude


15
2018-02-04 19:10



Necesita abrir el archivo en binario b modo para cuidar líneas en blanco en Python 2. Esto no es necesario en Python 3.

Entonces, cambie open('test.csv', 'w') a open('test.csv', 'wb').


4
2018-02-04 19:06



Pyexcel funciona muy bien con Python2 y Python3 sin problemas.

Instalación rápida con pip:

pip install pyexcel

Después de eso, solo 3 líneas de código y el trabajo está hecho:

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

2
2018-03-23 12:59