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
- VisiData : https://www.visidata.org/
- Guida in italiano di VisiData : https://github.com/ondata/guidaVisiData/blob/master/testo/README.md
- Miller : https://github.com/johnkerl/miller
- O meglio ancora : https://gist.github.com/aborruso/ba2cbdc086481e0b81044f4ddbbe9299
Un pensiero su “File CSV a larghezza fissa”