De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Cesar Brod
Data de Publicação: 22 de março de 2013
Ao ler a dica Usando o SQL para buscas em arquivos de texto, o amigo Pedro Markun sugeriu que eu conhecesse o csvkit. Valeu muito a pena!
Direto ao ponto! Para instalar o csvkit, você precisará do pip (utilitário para a instalação de programas em Python):
sudo apt-get install python-pip
A seguir, instale o csvkit:
sudo pip install csvkit
Agora, recrie o exemplo da dica Usando o SQL para buscas em arquivos de texto, replicado aqui para facilitar a sua vida:
Crie um arquivo texto chamado "exemplo.csv" com o conteúdo similar ao que está abaixo:
nome,idade,sexo Cesar,49,M Meire,48,F Aline,24,F Ana Luiza,20,F Natalia,26,F
Feito isto, execute o comando a seguir e observe o seu resultado:
# csvsql -i postgresql exemplo.csv CREATE TABLE exemplo ( nome VARCHAR(9) NOT NULL, idade INTEGER NOT NULL, sexo VARCHAR(1) NOT NULL );
Bacana, né? Mas até agora nada muito útil. A chave -i indica qual a base de dados para a qual será usada a sintaxe para a criação da tabela. Os gerenciadores de bases de dados suportados pelo csvkit são access, sybase, sqlite, informix, firebird, mysql, oracle, maxdb, postgresql e mssql.
As coisas começam a ficar mais interessantes com comandos como este aqui:
csvsql --db sqlite:///teste --insert exemplo.csv
Ele é relativamente intuitivo. Agora será criada uma base de dados sqlite, chamada teste, contendo uma tabela chamada exemplo cujos dados virão do arquivo exemplo.csv. Claro, para que isto funcione, você deve ter o sqlite instalado. Mas isto você já sabe como fazer, certo?
sudo apt-get install sqlite3
Teste para ver se funcionou:
# sqlite3 teste SQLite version 3.7.9 2011-11-01 00:52:41 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> select * from exemplo; Cesar|49|M Meire|48|M Aline|24|F Ana Luiza|20|F Natalia|26|F sqlite> select nome,idade from exemplo; Cesar|49 Meire|48 Aline|24 Ana Luiza|20 Natalia|26 sqlite> select nome,idade from exemplo where sexo="F"; Aline|24 Ana Luiza|20 Natalia|26
Tecle, simultaneamente, CTRL+D para sair do sqlite3.
Como você já viu neste artigo, o sqlite é um dos gerenciadores de base de dados suportado. Olhando os exemplos na página do csvkit você verá que pode, de maneira similar, importar seus arquivos csv para todos os tipos de bases de dados suportados pelo csvkit. Pense, por exemplo, naquela velha planilha com a lista dos seus clientes e fornecedores... #ficaadica! ;-)
Se quiser brincar com alguns arquivos csv já prontos, o Portal de Dados Abertos tem uma infinidade deles. Mas você pode também fazer algumas buscas divertidas no Google. Experimente, por exemplo, colocar o que está aí, logo abaixo, na caixa de busca do Google e dê uma navegada pelos resultados:
site:.br filetype:csv intext:nome intext:"@" intext:"e-mail" OR intext:mail
Lembrando que arquivos xls e ods podem ser, facilmente, convertidos para csv:
site:.br filetype:csv OR filetype:xls OR filetype:ods intext:nome intext:"@" intext:"e-mail" OR intext:mail
Divirta-se e lembre-se: use a sua inteligência apenas para fazer o bem!
Visite a página do projeto csvkit.
Cesar Brod traduz livros e outros materiais, do inglês para o português (e vice-versa), e produz conteúdo especializado para empresas de tecnologia. Ele pode ser contatado através das redes sociais ou através do formulário no portal da BrodTec.
Cesar Brod ministra cursos in-house adequados à necessidade de sua empresa, além de atuar como coach de equipes ágeis. Visite nosso portal para saber mais ou entre em contato diretamente com o autor para mais informações.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários