Sto utilizzando la libreria CSV di Ruby per analizzare alcuni file CSV. Ho un file CSV apparentemente ben formato che ho creato esportando un file Excel come CSV.Ruby: impossibile analizzare il file Excel esportato come CSV in OS X
Tuttavia CSV.open(filename, 'r')
causa un CSV::IllegalFormatError
.
Nel file non sono presenti virgole o virgolette, né alcunché che possa causare problemi.
Sospetto che il problema potrebbe riguardare le terminazioni di linea. Sono in grado di analizzare i dati inseriti manualmente tramite un editor di testo (Aquamacs). È proprio quando provo con i dati esportati da Excel (per OS X) che si verificano problemi. Quando apro il file CSV esportato in vim, tutto il testo viene visualizzato su una riga, con ^M
visualizzato tra le righe.
Dai documenti, sembra che sia possibile fornire open
con un separatore di riga; tuttavia non sono sicuro di cosa dovrebbe essere in questo caso.
grazie mille - vorrei averti sviato due volte per due utili bit di informazioni. – grifaton
Puoi chiarire cosa sta facendo?? ,,? \ R'? Grazie! –
? X restituisce il punto di codice per il carattere x, cioè un numero. Per qualche ragione, questo è ciò che CSV.open si aspetta di vedere. Quindi specifichiamo il separatore di campo come ',' e il separatore di record come altrimenti problematico^M, alias 015, alias 13, ovvero CR. A proposito, il comando vim sostituto funziona perché '\ r' significa CR nel pattern ma NL nella sostituzione, quindi non è in realtà un no-op. – DigitalRoss