28 de outubro de 2008

Exemplo 3 - Ler arquivo CSV e mostrar

fones02.py - Lê um arquivo delimitado por ponto-e-vírgula e mostra os campos na tela.

Esse exemplo junta os exemplos 1 e 2, usando o pacote csv do Python conforme a orientação do Adam Brandizzi, no exemplo 2.

""" Le um arquivo delimitado e mostra os campos na tela. """
import csv

print __doc__
f = csv.reader(open('fones.txt'), delimiter=';')
for [nome,nasc,fone] in f:
print 'nome=%s | nasc=%s | fone=%s' % (nome,nasc,fone)

print f.line_num, 'linhas lidas'
print '--- fim'


Vamos analisar o programa:
  • Linha 2: importa o pacote csv necessário. Visite o link e veja alguns exemplos.
  • Linha 4: veja a docstring. (Use-a sempre!).
  • Linha 5: usa o método csv.reader(), dizendo que o arquivo é delimitado por ponto-e-vírgula.
  • Linha 6: (o pulo do gato!) a iteração no retorno do csv.reader() retorna sempre uma lista. Portanto, eu disse ao iterator que queria jogar o resultado nas variáveis nome, nasc e fone.
  • Linha 7: mostrando o conteúdo formatado.
  • Linha 9: veja que temos um contador automático! :-D
Esse jeito fica melhor e mais direto que o exemplo 2.
Esse exemplo usa o mesmo arquivo de dados do exemplo 1. Portanto, o conteúdo do campo nome terá brancos à direita. Se você estiver aprendendo Python como eu, tente alterar esse programa para mostrá-lo sem os brancos à direita, ok? ;-)
Tenta aí e conte como você fez.

Contribua se você tem alguma informação adicional sobre esse assunto ou se encontrou um erro nesse programa. Afinal, ninguém é perfeito, né?
Comente também se esse exemplo ajudou a você de alguma forma. É gratificante saber. :-)
Não deixe de avisar se você encontrou alguma falha de iniciante que precisa corrigir ou melhorar, pois estou aprendendo. Isso ajuda bastante.

Abraço.

Eu sou Vinicius Assef, um programador do século passado que gosta de Python, pratica Lean Development e acredita em Deus. Você pode me contactar por email ou twitter.

2 comentários:

  1. Coloquei o link do seu blog na seção de links do vivaotux (meu blog).
    http://vivaotux.blogspot.com

    Há, suas dicas estão sendo devidamente anotadas, valeu pelo excelente trabalho.

    ResponderExcluir
  2. Ô Sérgio, que bom que o blog está ajudando de alguma forma. :-)

    Eu também tô aproveitando prá caramba os materiais que tenho linkado.

    Abraço.
    Vinicius Assef.

    ResponderExcluir

Marcadores