Oi, Daiane! Tudo certo?
O erro está acontecendo devido à estrutura do for
. A forma com que o laço de repetição foi escrito não permite iterar as linhas do arquivo CSV.
Além disso, não há um comando voltado à leitura do arquivo alunos.csv
, e essa ação é importante para a obtenção e apresentação dos dados dos alunos.
Para que o código funcione, podemos seguir os passos abaixo:
1. Após adicionar os dados da tabela
no arquivo alunos.csv
, fechá-lo:
arquivo.close()
2. Abrir novamente o arquivo no modo de leitura, adicionando o parâmetro r
em open
:
arquivo = open('alunos.csv', 'r')
3. Criar uma variável chamada leitor
, a qual irá ler o arquivo alunos.csv
:
leitor = csv.reader(arquivo)
4. Iterar as linhas presentes em nosso arquivo, utilizando o for
, e printar os resultados:
for linha in leitor:
print(linha)
4. Por fim, é só fechar o arquivo novamente:
arquivo.close()
Com isso, Daiane, teremos como resultado uma sequência com os dados de cada aluno! Caso queira ver o código completo, aqui está:
import csv
tabela = [['Aluno', 'nota1', 'nota2', 'nota3', 'presenças', 'turma'],
['Ana', 6, 9, 5, 35, 'A'],
['Paula', 9, 9, 7, 40, 'A'],
['Pedro', 8, 9, 5, 35, 'A'],
['Carlos', 8, 9, 5, 35, 'A'],
['Joana', 5, 7, 6, 35, 'B'],
['Jessica', 8, 9, 7, 35, 'B'],
['Carol', 3, 9, 5, 35, 'B'],
['Mariana', 8, 10, 6, 35, 'B'],
['José', 5, 4, 5, 35, 'B'],
['Bruno', 5, 9, 5, 35, 'B'],
['Clara', 8, 4, 5, 30, 'C'],
['Rute', 8, 9, 5, 29, 'C'],
['Lucas', 6, 9, 7, 37, 'C'],
['Mario', 5, 6, 8, 35, 'C'],
['João', 9, 8, 6, 33, 'C']]
arquivo = open('alunos.csv', 'w')
escritor = csv.writer(arquivo, delimiter=',', lineterminator='\n')
escritor.writerows(tabela)
arquivo.close()
arquivo = open('alunos.csv', 'r')
leitor = csv.reader(arquivo)
for linha in leitor:
print(linha)
arquivo.close()
Espero ter ajudado! Caso surjam novas dúvidas, fico à disposição.
Abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!