2010-11-08 30 views
13

Ho un file csv che contiene le righe da un database sqlite3. Ho scritto le righe sul file CSV usando python.Problema di righe vuote di Csv con Excel

Quando apro il file csv con Ms Excel, una riga vuota viene visualizzata sotto ogni riga, ma il file sul blocco note funziona correttamente (senza spazi vuoti).

Qualcuno sa perché questo è felice e come posso risolvere il problema?

Modifica: ho usato la funzione strip() per tutti gli attributi prima di scrivere una riga.

Grazie.

risposta

33

Stai utilizzando open('file.csv', 'w') --try open('file.csv', 'wb').

Il modulo csv Python richiede che i file di output vengano aperti in modalità binaria.

+0

La tua soluzione ha funzionato! Grazie mille. dato che i file CSV sono archiviati come testo, ho pensato di non aver bisogno di aggiungere il flag binario. A proposito, come sapevi che non ho scritto wb senza nemmeno guardare il codice? – optimus

+0

Ho avuto lo stesso problema circa un anno fa. – robert

+0

Grazie @robert. Vorrei poterti dare un altro paio di voti! Vorrei che i documenti rendessero queste informazioni un po 'più facili da trovare. Sezione pertinente: 'Se csvfile è un oggetto file, deve essere aperto con il flag 'b' sulle piattaforme in cui ciò fa la differenza. –

0

il primo che mi viene in mente (solo un'idea) è che potresti aver usato "\ r \ n" come delimitatore di riga (che viene visualizzato come un segno di riga nel blocco note) ma Excel si aspetta di ottenere solo \ n "o solo" \ r "e quindi interpreta questo come due interruzioni di riga.

+0

Ciao, ho spogliato tutti gli spazi con la funzione strip() prima di scrivere sul file – optimus

+0

Il terminatore di riga/NOTO (predefinito) normale/comune/previsto per riga (file NON valido) per i file CSV ** è ** '\ r \ n' –