[python-brasil] Leitura de arquivo CSV e separar em colunas

2,403 views
Skip to first unread message

Rogério Carrasqueira

unread,
Nov 23, 2010, 7:54:52 AM11/23/10
to python...@yahoogrupos.com.br
 

Olá Pessoal!

Sou novo na utilização da linguagem python e estou utilizando-a juntamente
com o framework Django. O que ocorre é que estou com algumas dúvidas na
leitura de arquivos CSV, na verdade eu preciso fazer a leitura do CSV por
colunas, ou seja, eu preciso ter a capacidade de extrair os valores linha a
linha e coluna a coluna, para que eu possa fazer algumas manipulações antes
de jogá-los para o Django fazer o seu trabalho e gravar no banco de dados.

Eu implementei a seguinte rotina:

fd = open('%s/%s' % ('uploads', filename))

import csv # first we need import necessary lib:csv
testReader=csv.reader(fd, delimiter=';', quotechar='|')

for row in testReader:
print "|".join(row) # aqui gostaria de pegar os dados coluna a coluna e
poder manipulá-los como eu quisesse antes de jogar para o django trabalhar.

fd.close()

Muito obrigado!

Rogério Carrasqueira

---
e-mail: rogerio.ca...@gmail.com
skype: rgcarrasqueira
MSN: rcarra...@hotmail.com
ICQ: 50525616
Tel.: (11) 7805-0074

[As partes desta mensagem que não continham texto foram removidas]

__._,_.___
Atividade nos últimos dias:
.

__,_._,___

Carlos Henrique

unread,
Nov 23, 2010, 2:37:44 PM11/23/10
to python...@yahoogrupos.com.br
Grande Rogerio,

Eu pessoalmente uso o modulo CSV e abro um arquivo por ele.
(pelo que notei estas abrindo o arquivo fora do modulo csv, como um arquivo comum)

Exemplo de codigo

arquivo = csv.reader(open("dados.txt", "rb"), dialect='excel-tab') ----> abre o arquivo usando o dialeto excel-tab

for row in arquivo:
print row[1] -----> imprime 2 coluna (comeca por zero)

Acho que assim fica melhor e mais facil

[]s

Carlos Henrique Cano

------------------------------------

Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/python-brasil/

<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html


Leonardo Santagada

unread,
Nov 23, 2010, 8:36:13 PM11/23/10
to python...@yahoogrupos.com.br
 

2010/11/23 Carlos Henrique <supe...@gmail.com>:


> Grande Rogerio,
>
> Eu pessoalmente uso o modulo CSV e abro um arquivo por ele.
> (pelo que notei estas abrindo o arquivo fora do modulo csv, como um arquivo comum)
>
> Exemplo de codigo
>
> arquivo = csv.reader(open("dados.txt", "rb"), dialect='excel-tab') ----> abre o arquivo usando o dialeto excel-tab
>
> for row in arquivo:
>   print row[1] -----> imprime 2 coluna (comeca por zero)

tu não esta abrindo o arquivo por ele

f = open(...)
csv.reader(f, ...)

é quase a mesma coisa que:

csv.reader(open(...), ...)

com a diferença que no primeiro caso você tem o controle do arquivo e
pode fecha-lo quando quiser; precisar.

--
Leonardo Santagada

__._,_.___
.

__,_._,___

Vinicius Franco do Nascimento

unread,
Nov 23, 2010, 5:56:51 PM11/23/10
to python...@yahoogrupos.com.br
 

recomendo o seguinte:

teste=[]
for i in testReader:
teste.append(i)

agora meu caro, você acabou de transformar tudo numa grande matriz.

para ler os dados você utilizará teste[i][k] aí eles viraram objetos
individuais

Vinícius Franco do Nascimento

"Doing easily what others find difficult is talent; doing what is impossible
for talent is genius." -- Henri-Frederic Amiel

2010/11/23 Carlos Henrique <supe...@gmail.com>

__._,_.___
.

__,_._,___
Reply all
Reply to author
Forward
0 new messages