Se vuoi usare la riga di comando (e non creare un intero programma per fare il lavoro), ti piacerebbe usare le righe , un progetto su cui sto lavorando: è un'interfaccia della riga di comando per i dati tabulari ma anche una libreria Python da usare nei tuoi programmi. Con l'interfaccia della riga di comando puoi stampare in modo carino tutti i dati in CSV, XLS, XLSX, HTML o qualsiasi altro formato tabulare supportato dalla libreria con un semplice comando:
rows print myfile.csv
Se myfile.csv
è così:
state,city,inhabitants,area
RJ,Angra dos Reis,169511,825.09
RJ,Aperibé,10213,94.64
RJ,Araruama,112008,638.02
RJ,Areal,11423,110.92
RJ,Armação dos Búzios,27560,70.28
Quindi le righe stamperanno i contenuti in modo meraviglioso, in questo modo:
+-------+-------------------------------+-------------+---------+
| state | city | inhabitants | area |
+-------+-------------------------------+-------------+---------+
| RJ | Angra dos Reis | 169511 | 825.09 |
| RJ | Aperibé | 10213 | 94.64 |
| RJ | Araruama | 112008 | 638.02 |
| RJ | Areal | 11423 | 110.92 |
| RJ | Armação dos Búzios | 27560 | 70.28 |
+-------+-------------------------------+-------------+---------+
Installazione
Se sei uno sviluppatore Python e hai già pip
installato sul tuo computer, esegui un virtualenv o con sudo
:
pip install rows
Se stai usando Debian:
sudo apt-get install rows
Altre caratteristiche interessanti
Conversione di formati
Puoi convertire tra qualsiasi formato supportato:
rows convert myfile.xlsx myfile.csv
Interrogazione
Sì, puoi usare SQL in un file CSV:
$ rows query 'SELECT city, area FROM table1 WHERE inhabitants > 100000' myfile.csv
+----------------+--------+
| city | area |
+----------------+--------+
| Angra dos Reis | 825.09 |
| Araruama | 638.02 |
+----------------+--------+
È anche possibile convertire l'output della query in un file anziché in stdout utilizzando il --output
parametro
Come libreria Python
Puoi farlo anche nei tuoi programmi Python:
import rows
table = rows.import_from_csv('myfile.csv')
rows.export_to_txt(table, 'myfile.txt')
# `myfile.txt` will have same content as `rows print` output
Spero ti sia piaciuto!