Si desea usar la línea de comandos (y no crear un programa completo para hacer el trabajo), le gustaría usar filas , un proyecto en el que estoy trabajando: es una interfaz de línea de comandos para datos tabulares pero también una biblioteca de Python para usar en sus programas. Con la interfaz de línea de comandos, puede imprimir bastante cualquier dato en CSV, XLS, XLSX, HTML o cualquier otro formato tabular admitido por la biblioteca con un comando simple:
rows print myfile.csv
Si myfile.csv
es así:
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
Luego, las filas imprimirán el contenido de una manera hermosa, como esta:
+-------+-------------------------------+-------------+---------+
| 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 |
+-------+-------------------------------+-------------+---------+
Instalando
Si usted es un desarrollador de Python y ya ha pip
instalado en su máquina, simplemente ejecute dentro de un virtualenv o con sudo
:
pip install rows
Si estás usando Debian:
sudo apt-get install rows
Otras características interesantes
Convertir formatos
Puede convertir entre cualquier formato compatible:
rows convert myfile.xlsx myfile.csv
Consulta
Sí, puede usar SQL en un archivo CSV:
$ rows query 'SELECT city, area FROM table1 WHERE inhabitants > 100000' myfile.csv
+----------------+--------+
| city | area |
+----------------+--------+
| Angra dos Reis | 825.09 |
| Araruama | 638.02 |
+----------------+--------+
También es posible convertir la salida de la consulta a un archivo en lugar de stdout utilizando el --output
parámetro
Como una biblioteca de Python
También puedes en tus programas de 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
¡Espero que lo disfrutes!