2010-11-08 50 views
13

Tengo un archivo csv que contiene filas de una base de datos sqlite3. Escribí las filas en el archivo csv usando Python.Csv problema de filas en blanco con Excel

Cuando abro el archivo csv con Ms Excel, aparece una fila en blanco debajo de cada fila, pero el archivo en el bloc de notas está bien (sin espacios en blanco).

¿Alguien sabe por qué pasa esto y cómo puedo solucionarlo?

Editar: Utilicé la función strip() para todos los atributos antes de escribir una fila.

Gracias.

Respuesta

33

Estás usando open('file.csv', 'w') --intentar open('file.csv', 'wb').

El módulo csv de Python requiere que los archivos de salida se abran en modo binario.

+0

Tu solución funcionó! muchas gracias. dado que los archivos csv se almacenan como texto, pensé que no era necesario agregar el indicador binario. Por cierto, ¿cómo sabías que no escribí wb sin siquiera mirar el código? – optimus

+0

Tuve el mismo problema hace un año. – robert

+0

Gracias @robert. ¡Ojalá pudiera darte un par de votos más! Ojalá los documentos hicieran esta información un poco más fácil de encontrar. Sección relevante: 'Si csvfile es un objeto de archivo, debe abrirse con la bandera 'b' en plataformas donde eso haga una diferencia. –

0

lo primero que me viene a la cabeza (solo una idea) es que puede haber usado "\ r \ n" como delimitador de filas (que se muestra como un salto de línea en el bloc de notas) pero Excel espera obtener solo "\ n "o solo" \ r ", por lo que interpreta esto como dos saltos de línea.

+0

hola, eliminé todos los espacios con la función strip() antes de escribir en el archivo – optimus

+0

El terminador de la fila predeterminado/usual/común/esperado por Excel (NO línea) para archivos CSV ** es ** '\ r \ n' –

Cuestiones relacionadas