Extrair dados de arquivos txt

703 views
Skip to first unread message

Fabiano Almeida

unread,
Feb 10, 2017, 2:25:04 PM2/10/17
to python...@googlegroups.com
Boa tarde,

Estou com uma grande quantidade de arquivos txt dos quais preciso extrair dados para alimentar um banco de dados.

A estrutura básica do arquivo txt é:

Categoria
-------------------------------------------------------------------------
Chave      Dado
Chave      Dado

E isso se repete várias vezes dentro do arquivo. A quantidade de traços é fixa. A coluna inicial do Dado é quase sempre a mesma.

Como posso parsear um arquivo assim? O resultado das informações relevantes vou colocar num .csv para depois importar no programa.

Grato,

Fabiano.

Linux - Junior Polegato

unread,
Feb 10, 2017, 3:05:19 PM2/10/17
to python...@googlegroups.com
Olá!

Seria interessante você dar um exemplo com arquivo fonte com
uma quantidade de dados repetitiva relevante, umas 3 categorias, com
valores parecidos com o real se este for confidencial, daí um outro
arquivo de saída .csv que seria o esperado a partir do exemplo, além de
descrever mais sobre ambas estruturas, valores e tipos.


--

[]'s

Junior Polegato

Marlysson Silva

unread,
Feb 10, 2017, 3:43:38 PM2/10/17
to Python Brasil
Para parsear em csv:
https://docs.python.org/3/library/csv.html

Para processar o .txt você poderia ler o arquivo todo usando o readlines() e assim ele retornaria todas as linhas em cada elemento da lista, assim teria todos os elementos , o cabeçalho , a linha e o conteúdo.

Depois você poderia pegar do terceiro elemento pra frente, onde passaria o cabeçalho e os traços .. pegando só o conteúdo..

Ai faria um for desses elementos fazendo um split no espaço .. assim pegando só a chave e o conteúdo..


for conteudo in conteudo[2:]:
     chave
, valor = conteudo.split()

Sinval Júnior

unread,
Feb 12, 2017, 8:52:49 AM2/12/17
to python...@googlegroups.com
Caso seja extremamene grande use o pandas[1] usa wrapper c++ pode ser usando em conjunto com datascience. Ideal apenas para arquivos bem grandes e que será necessário outros operações. Caso contrário será um canhão para matar uma formiga.









Ao encaminhar esta mensagem, por favor:
1 - Apague meu endereço eletrônico;
2 - Encaminhe como Cópia Oculta (Cco ou BCc) aos seus destinatários. Dificulte assim a disseminação de vírus, spams e banners.

#=================================================================+
#!/usr/bin/env python
nome = 'Sinval Júnior'
email = 'sinvalju arroba gmail ponto com'
print nome
print email
#==================================================================+

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasil+unsubscribe@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages