>>> arquivo = open('perfis.csv', 'r')
>>> for linha in arquivo:
... valores = linha.split(',')
...
>>> valores[0]
'\n'
>>>
>>> arquivo = open('perfis.csv', 'r')
>>> for linha in arquivo:
... valores = linha.split(',')
...
>>> valores[0]
'\n'
>>>
Dos valores que estão cadastrados em (perfil.csv). Só estou conseguindo chamar os valores que coloquei no inicio.
Olá Luisa,
verifiquei que vc não está fechando o arquivo. Pode ser que pelo fato de executar duas vezes o mesmo código no mesmo arquivo sem fechá-lo, isso esteja acontecendo.
Coloque um print logo após o for para verificar o que está sendo lido. Veja nesse exemplo:
In [6]: f = open('perfis.csv', 'r')
In [7]: for linha in f:
...: print(linha)
...:
Ana Paula Gonçalves, 21-34345432, Amigas Ltda
Camila Almeida, 21-21215643, Auron Ltda
Alexandrina Pessoa, 11-23416531, Primo Serviços
João da Silva, 45-21249834, Preço Ótimo
In [8]: for linha in f:
...: print(linha)
...:
Quando executo o segundo for, nada é exibido. Pois não fechei o arquivo antes de percorre-lo novamente.
O correto seria:
In [25]: file = open('perfis.csv', 'r')
In [26]: for linha in file:
...: nome, fone, company = linha.split(',')
...: print(f"Nome: {nome}, Fone: {fone}, Company: {company}")
...: file.close()
Nome: Ana Paula Gonçalves, Fone: 21-34345432, Company: Amigas Ltda
Nome: Camila Almeida, Fone: 21-21215643, Company: Auron Ltda
Nome: Alexandrina Pessoa, Fone: 11-23416531, Company: Primo Serviços
Nome: João da Silva, Fone: 45-21249834, Company: Preço Ótimo
In [27]:
Oi Luciano, estou fechando sim.
from models import* perfis=[] perfil = Perfil(nome='Luisa Kim', telefone='21 967654005', empresa='prog') perfis.append(perfil) arquivo = open('perfis.csv', 'r') for linha in arquivo: ... print(linha) ...
Luisa Kim, 21 967654005, prog
Ana Silva, 21-34345432, Amigas Ltda
Camila Almeida, 21-21215643, Auron Ltda
arquivo.close() arquivo = open('perfis.csv', 'r') for linha in arquivo: ... valores = linha.split(',') ... valores[0] '\n'
Luisa,
não entendi muito bem sua postagem. Mas postei um código aqui, veja se te ajuda
A atribuição de valores que você está fazendo está dentro do loop que lê as linhas do arquivo. Isso faz com que a cada iteração os valores tenham os dados contidos em uma única linha do arquivo. Como as linhas são lidas de forma sequencial quando o loop termina a lista valores tem uma lista dos valores apenas da última linha.
Assim provavelmente o que está acontecendo é que o arquivo tem uma linha em branco no final.
Se quiser ver todas as linhas, o jeito mais simples seria dar um print em valores 'dentro' do loop, logo depois da atribuição, algo como:
for linha in arquivo:
valores = linha.split(',')
print( valores )