Sistema de notas persistente
Sempre que você quiser salvar dados entre execuções de um programa – como uma lista de tarefas, configurações ou registros de clientes – você vai precisar gravar em arquivo. Mesmo apps modernos usam arquivos de texto simples para logs, rascunhos locais ou exportações. Saber ler e escrever dados de forma estruturada (com delimitadores como | ou ;) é uma habilidade prática que serve de base para qualquer sistema de persistência.
O PROBLEMA
Sistema de notas com persistência em arquivo. CRUD completo com menu.
EXEMPLO
1-Adicionar, 2-Listar, 0-Sair
SOBRE O CONCEITO
A chave é usar o bloco with open(...) as arquivo: para garantir que o arquivo seja fechado automaticamente. Para escrever, use arquivo.write() ou percorra os dados formatando cada linha. Para ler, use for linha in arquivo: e depois linha.strip().split(delimitador) para quebrar cada registro. O erro mais comum é ter um formato inconsistente: se uma linha tem menos campos do que o esperado (ex.: faltou o delimitador), o split vai gerar uma lista menor, e acessar índices que não existem causa IndexError. Por isso é importante garantir que, ao adicionar uma nota, você use sempre o mesmo padrão (ex.: titulo|conteudo) e, ao ler, trate linhas vazias ou mal formatadas com um if antes de desmembrar.
RESOLUÇÃO