4
respostas

Código split() usando só o final de um arquivo

Meu código funciona, mas quando vou imprimir separando os valores, ele começa da última linha.

arquivo=open('perfil.csv', 'r')
>>> for linha in arquivo:
...     valores=linha.split(',')
...
>>> valores[0]
'Nome4'

Não sei o que há de errado, eu não mexi no código antes disso.

4 respostas

Oi, Alice

Não sei se você declarou a variável valores como uma array, se não pode ser esse o problema. Tente a seguinte alteração:

arquivo=open('perfil.csv', 'r')
valores = []
>>> for linha in arquivo:
...     linha=linha.split()
...    valores.append(linha)
>>> valores[0]

Consegui arrumar agora, mas ele não tá separando em cada valor, tipo valores[0]=Nome1. Ele tá me dando valores[0]=['Nome1', 'telefone1', 'empresa1']

Boa noite Alice,

Você está salvando uma lista (linha) dentro de uma posição de outra lista (valores)

Por isso você não está conseguindo acessar o dados separadamente, pra corrigir isso devemos construir um novo Perfil, vejamos:

arquivo=open('perfil.csv', 'r')
valores = []
>>> for linha in arquivo:
...     linha=linha.split()
...     valores.append(Perfil(*linha))
>>> valores[0].nome

Agora que cada linha do arquivo se refere a um Perfil, e temos uma lista de Perfil que no caso é valores. Podemos então chamar o Perfil da posição de valores e logo em seguida o atributo desejado.

valores[0].nome

valores[0].telefone

valores[1].nome

É como o Júlio César disse, acredito que você está querendo acessar uma lista dentro de cada posição, tente valores[0][indice-doparametro], exemplo >>> valores[0][0] "Nome1"