Se você deseja usar a linha de comando (e não criar um programa inteiro para fazer o trabalho), gostaria de usar linhas , um projeto no qual estou trabalhando: é uma interface de linha de comando para dados tabulares, mas também uma biblioteca Python para usar em seus programas. Com a interface da linha de comandos, você pode imprimir praticamente qualquer dado em CSV, XLS, XLSX, HTML ou qualquer outro formato de tabela suportado pela biblioteca com um comando simples:
rows print myfile.csv
Se myfile.csv
é assim:
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
Em seguida, as linhas imprimirão o conteúdo de uma maneira bonita, assim:
+-------+-------------------------------+-------------+---------+
| 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
Se você é um desenvolvedor Python e já tem pip
instalado em sua máquina, basta executar dentro de um virtualenv ou com sudo
:
pip install rows
Se você estiver usando o Debian:
sudo apt-get install rows
Outros recursos interessantes
Convertendo Formatos
Você pode converter entre qualquer formato suportado:
rows convert myfile.xlsx myfile.csv
Consulta
Sim, você pode usar o SQL em um arquivo CSV:
$ rows query 'SELECT city, area FROM table1 WHERE inhabitants > 100000' myfile.csv
+----------------+--------+
| city | area |
+----------------+--------+
| Angra dos Reis | 825.09 |
| Araruama | 638.02 |
+----------------+--------+
Também é possível converter a saída da consulta em um arquivo em vez de stdout usando o --output
parâmetro
Como uma biblioteca Python
Você também pode nos seus programas 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 goste!