1
resposta

Desafio: escrevendo e lendo arquivos csv

import csv

arquivo = 'alunos.csv'

def escrever(nome, nota):
    try:
        with open(arquivo, 'x', newline='', encoding='utf-8') as f:
            escritor = csv.writer(f)
            escritor.writerow(['Nome', 'Nota'])
            escritor.writerow([nome, float(nota)])
    except:
        with open(arquivo, 'a', newline='', encoding='utf-8') as f:
            escritor = csv.writer(f)
            escritor.writerow([nome, float(nota)])

def ler(nota):
    try:
        with open(arquivo, encoding='utf-8', newline='') as f:
            leitor = csv.DictReader(f)
            print(f"{'-'*30}\nAlunos com nota maior ou igual a {nota}:")
            for linha in leitor:
                if float(l['Nota']) >= 7:
                    print(f"{linha['Nome']} ({linha['Nota']})")
            print("-"*30)
    except:
        print("Nenhum dado foi inserido ainda.")

while True:
    inicio = input('1. Escrever\n2. Ler\n3. Sair\n-> ')
    if inicio.strip().lower() == 'escrever' or inicio == '1':
        nome = input('Nome: ')
        nota = input('Nota: ')
        escrever(nome, nota)

    elif inicio.strip().lower() == 'ler' or inicio == '2':
        ler(7.0)
    elif inicio.strip().lower() == 'sair' or not inicio or inicio == '3':
        break
    else:
        continue
1 resposta

Oi, Zé! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

A sua solução tá bem organizada, principalmente no uso de with open e na separação das funções de escrever e ler. Um ponto importante é que, na função ler, você usou l['Nota'] em vez de linha['Nota'], o que pode causar erro, e também o parâmetro nota não está sendo utilizado na comparação.

Uma dica interessante para o futuro é usar o método get em dicionários para evitar erros caso a chave não exista.


dados = {'Nome': 'Ana', 'Nota': '8'}

nota = float(dados.get('Nota', 0))

if nota >= 7:
    print(dados.get('Nome'))

Esse código pega os valores com segurança, evitando erro caso a chave não exista, e faz a conversão para número antes da comparação.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!