Lendo valores de um arquivo texto

55 views
Skip to first unread message

Marcelo Del Fiore

unread,
May 2, 2014, 10:40:03 AM5/2/14
to python...@googlegroups.com
bom dia,

estou tentando ler valores de um arquivo texto, valores estes que estão em colunas ao longo das linhas, e armazena-los (cada coluna) em listas de dados que vou utilizar em seguida, ou seja, o arquivo tem linhas com 7 colunas da dados que quero separar em arrays separados.

# armazenando os dados lidos
codigo = []
preco_1 = []
preco_2 = []
preco_3 = []
preco_4 = []
data = []
volume = []

# Abrir o arquivo com os dados
analisado = open('arq.csv','r')

# ler as linhas do arquivo para os valores
for linha in analisado:
    (codigo.append,preco_1.append,preco_2.append,preco_3.append,preco_4.append,data.append,volume.append) = linha.split(';')

mas retorna o erro

Traceback (most recent call last):
  File "sist.py", line 23, in <module>
    (codigo.append,preco_1.append,preco_2.append,preco_3.append,preco_4.append,data.append,volume.append) = linha.split(';')
AttributeError: 'list' object attribute 'append' is read-only

Pesquisei diversas fontes e me parece que está correto. Alguém saberia me dizer o problema que eu não vi ?

Obrigado,

Marcelo


Fabio C. Barrionuevo da Luz

unread,
May 2, 2014, 10:49:23 AM5/2/14
to python...@googlegroups.com
append é uma função. Pelo que sei não da para utilizar unpacking diretamente em funções.


for linha in analisado:
    #  utilizan unpacking para variavel linha
    d_codigo, d_preco_1, d_preco_2, d_preco_3, d_preco_4, d_data, d_volume = linha.split(';')
    #  adiciona item nas respectivas listas
    codigo.append(d_codigo)
    preco_1.append(d_preco_1)
    preco_2.append(d_preco_2)
    preco_3.append(d_preco_3)
    preco_4.append(d_preco_4)
    data.append(d_data)
    volume.append(d_volume)




--
--
------------------------------------
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-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo quot;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-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Fábio C. Barrionuevo da Luz
Acadêmico de Sistemas de Informação na Faculdade Católica do Tocantins - FACTO
Palmas - Tocantins - Brasil - América do Sul

Silvio Giunge Silva a.k.a kanazuchi

unread,
May 2, 2014, 1:15:25 PM5/2/14
to python...@googlegroups.com
da pra fazer isso de varias formas, 

for linha in analisado:
|   tmpLine = linha.split(',')
|   codigo_1.append(tmpLine[0])
|   preco_1.append(tmpLine[1])
|   preco_2.append(tmpLine[2])
|   preco_3.append(tmpLine[3])
|   preco_4.append(tmpLine[4])
|   data.append(tmpLine[5])

for linha in analizado:
|   codigo_1.append(linha.split(',')[0])
|   preco_1.append(linha.split(',')[1])
|   preco_2.append(linha.split(',')[2])
|   preco_3.append(linha.split(',')[3])
|   preco_4.append(linha.split(',')[4])
|   data.append(linha.split(',')[5])



From: bna...@gmail.com
Date: Fri, 2 May 2014 11:49:23 -0300
Subject: Re: [python-brasil] Lendo valores de um arquivo texto
To: python...@googlegroups.com

Lucas Magnum

unread,
May 2, 2014, 1:17:57 PM5/2/14
to python...@googlegroups.com
Pode ser feito assim também:

colunas = [codigo, preco_1, preco_2, preco_3, preco_4, data, volume]

for linha in analisado:
   map(lambda coluna, valor: coluna.append(valor), colunas, linha.split(','))


[]'s

Lucas Magnum.
Reply all
Reply to author
Forward
0 new messages