File CSV a larghezza fissa

Come gestire facilmente un file TAF dei Punti Fiduciali scaricata dalla AdT ?

Questi file sono particolari in quanto hanno un separatore di colonna a larghezza fissa (fixed) e sono senza intestazione, i valori sono descritti in un file, un PDF descrittivo come questo:

Per poter trasformarlo in un classico file CSV (con separatore colonne una virgola) in modo da poterlo usare facilmente in altre applicazioni, è possibile usare Libre Calc come segue, aprire il file e settare:

ma ci vuole pazienza, tanta pazienza e si otterrebbe sempre un file sporco, con colonne vuote.

In questo blog post descrivo una soluzione consigliatami da Andrea Borruso, ovvero, usare la riga di comando e due utility strepitose: la prima è VisiData che riconosce in automatico i file csv Fixed; la seconda è Miller che, in questo caso, fa la pulizia del file; il risultato in meno di 10 secondi è questo(qui il file di Terni):

basta lanciare i due seguenti comandi:

vd TAF_Terni.csv -f fixed -b -o output.csv

mlr -I --csv -N clean-whitespace output.csv

Poi, con qualsiasi altro editor di testo, aggiungere l’intestazione.


NOTE FINALI: La riga di comando si rivela essere la soluzione migliore, la più veloce e sicura. Per ottenere una soluzione ancora migliore e tenere presente lo schema dati del PDF e l’aggiunta dell’intestazione, seguire il link O meglio ancora by Andrea Borruso

L’Agenzia delle Entrate dovrebbe pubblicare in formato CSV lo schema dei dati e non un bruttissimo PDF!

EDIT: nel metodo che utilizza VisiData ci potrebbero essere dei problemi nel caso di TAF relative a province (vedi Bari) con comuni in cui sono presenti sezioni catastali e anche più in generale nel caso in cui campi opzionali siano “valorizzati” solo per record oltre 1000. (Grazie alla osservazione di Andrea Giudiceandrea).


RIFERIMENTI UTILI

RINGRAZIAMENTI


Un pensiero su “File CSV a larghezza fissa

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.