Oferta Nacional - 234x60

Arquivo

Textos com Etiquetas ‘ler txt em python’

Como ler um arquivo CSV ou TXT usando Python

Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

Continuando o artigo anterior, onde eu tive a necessidade de ler 3 arquivos em formatos de textos mas com padrões diferentes, em que precisei padronizá-los para cadastrar num banco de dados MySQL, vou mostrar como fiz para ler os arquivos CSV e TXT, e depois salvar em arquivos temporários (para manter os originais).


import csv
import re
import os

nome = raw_input("Nome do arquivo: ") # deve ser digitado o caminho do arquivo também

ifile  = open(nome, "r") # arquivo de leitura, original

ofile  = open(nome + ".tmp", "w+") # arquivo temporário, de leitura e gravação

for line in ifile:
linha = line;

#print "Substituindo '\\t\r' por ''"
pattern = re.compile(r'\t\r')
linha = pattern.sub("",linha)

#print "Substituindo ',' por '.'"
pattern = re.compile(r',')
linha = pattern.sub(".",linha)

#print "Substituindo '\t' por ','"
pattern = re.compile('\t')
linha = pattern.sub(",",linha)

#print "Padronizando as datas... \n"
pattern = re.compile(r'([0-9]{2})/([0-9]{2})/([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2})')
linha = pattern.sub(r"\3-\2-\1 \4:\5:\6",linha)

print '\n' + line + '\n' + linha + '\n'

ofile.write(linha)

ofile.close()

ifile.close()

Neste ponto, foram feitas algumas substituições utilizando expressões regulares a partir do arquivo original, e salvando num arquivo temporário com a extensão .tmp. Agora vamos abrir o arquivo temporário para leitura. No meu caso, utilizei os dados para cadastrá-los no banco MySQL, mas neste exemplo, apenas vamos imprimir o resultado na tela.


ofile  = open(nome + ".tmp", "rb")
reader = csv.reader(ofile)

rownum = 0
for row in reader:
# Salva o cabeçalho
if rownum == 0:
header = row
else:
colnum = 0
for col in row:

# imprime a linha, com o respectivo nome do campo, salvo do cabeçalho
print '%-8s: %s - %d' % (header[colnum], col, colnum)

colnum += 1

rownum += 1

ofile.close()
os.remove(nome + ".tmp")

 

 

Related Posts Plugin for WordPress, Blogger...

Posts Relacionados:

SEO Powered by Platinum SEO from Techblissonline