Dicionário do Pequeno Programador 🐍
Anexo 05 - Aulas 9 e 10
Arquivos e Projeto Final! Aprenda a salvar dados e integrar tudo que você aprendeu!
Arquivos - A Memória Permanente (Aula 9) 💾
Conceito | O que é? 🤔 | Exemplo em Código |
---|---|---|
Arquivo 📄 | É como um caderno digital onde você pode escrever informações e elas ficam salvas mesmo quando o programa termina! | arquivo = open("dados.txt", "w") |
Persistência 🏛️ | Capacidade de lembrar informações mesmo depois que o computador é desligado, como uma memória permanente | Salvar pontuação de jogos, lista de contatos, diário pessoal |
Encoding 🌍 | O "idioma" que o arquivo usa para entender acentos e caracteres especiais (use sempre "utf-8"!) | open("arquivo.txt", "w", encoding="utf-8") |
Modos de Abertura de Arquivos 🚪
Modo | O que faz? 📝 | Exemplo |
---|---|---|
"w" (write) ✏️ |
Escrever - Cria um arquivo novo ou apaga tudo do arquivo antigo e escreve do zero | open("novo.txt", "w") ⚠️ Cuidado: apaga tudo! |
"a" (append) ➕ |
Anexar - Adiciona texto no final do arquivo sem apagar o que já estava lá | open("diario.txt", "a") ✅ Seguro: mantém o conteúdo |
"r" (read) 👁️ |
Ler - Apenas lê o conteúdo do arquivo, sem modificar nada | open("dados.txt", "r") 📖 Só para consultar |
"r+" 🔄 |
Ler e Escrever - Pode tanto ler quanto modificar o arquivo | open("config.txt", "r+") 🛠️ Para editar |
Operações com Arquivos 📂
Operação | O que faz? ⚙️ | Exemplo |
---|---|---|
.write(texto) ✍️ |
Escreve texto no arquivo (não pula linha automaticamente!) | arquivo.write("Olá mundo!\n") 🔤 \n = quebra de linha |
.read() 📖 |
Lê todo o conteúdo do arquivo de uma vez | conteudo = arquivo.read() 📜 Pega tudo |
.readline() 📝 |
Lê apenas uma linha por vez do arquivo | linha = arquivo.readline() 📄 Linha por linha |
.readlines() 📋 |
Lê todas as linhas e coloca cada uma em uma lista | linhas = arquivo.readlines() 📝 Lista de linhas |
.close() 🚪 |
Fecha o arquivo para liberar memória (muito importante!) | arquivo.close() 🔒 Sempre feche! |
With Statement - O Jeito Seguro 🛡️
Conceito | Por que usar? 🌟 | Exemplo |
---|---|---|
with open() 🔐 |
Abre o arquivo e fecha automaticamente quando termina, mesmo se der erro! | with open("dados.txt", "w") as arquivo: |
Gerenciamento Automático 🤖 | Você não precisa lembrar de fechar o arquivo - o Python faz isso sozinho | Evita vazamentos de memória e arquivos travados |
Tratamento de Erros 🚨 | Se algo der errado, o arquivo é fechado corretamente antes de mostrar o erro | try: |
Tratamento de Erros com Arquivos 🚨
Erro | Quando acontece? 🤷♀️ | Como tratar |
---|---|---|
FileNotFoundError 🔍 |
Tentou abrir um arquivo que não existe | except FileNotFoundError: |
PermissionError 🚫 |
Não tem permissão para mexer no arquivo (pode estar aberto em outro programa) | except PermissionError: |
UnicodeDecodeError 🌐 |
Problema com encoding - arquivo com caracteres especiais | open("arquivo.txt", "r", encoding="utf-8") 🌍 Sempre use utf-8! |
Projeto Final - Integração Total (Aula 10) 🏆
Conceito Usado | Onde aparece? 🎯 | Exemplo no Projeto |
---|---|---|
Variáveis 📦 | Guardar dados das pessoas: nome, idade, email, cidade | nome = input("Nome: ") |
Listas 📋 | Armazenar todos os cadastros em uma lista principal | pessoas = [] |
Dicionários 🗂️ | Organizar dados de cada pessoa de forma estruturada | pessoa = {"nome": nome, "idade": idade, "email": email} |
Funções ⚙️ | Cada funcionalidade do sistema é uma função separada | def adicionar_pessoa(): |
If/Elif/Else 🚦 | Menu de opções e validações de entrada | if opcao == "1": |
Loops While 🔄 | Menu principal que roda até o usuário sair | while True: |
Loops For 🔁 | Percorrer lista de pessoas para listar ou buscar | for pessoa in pessoas: |
Try/Except 🛡️ | Validar entrada de números (idade) sem quebrar o programa | try: |
Estrutura do Projeto Final 🏗️
Função | O que faz? 🎪 | Conceitos Integrados |
---|---|---|
mostrar_menu() 📋 |
Exibe as opções disponíveis para o usuário | Função simples, print(), formatação |
adicionar_pessoa() ➕ |
Cadastra nova pessoa com validação completa | Input, variáveis, try/except, dicionários, listas |
listar_pessoas() 👥 |
Mostra todos os cadastros de forma organizada | Loops for, enumerate, condições, formatação |
buscar_pessoa() 🔍 |
Procura pessoas por nome (busca parcial) | Input, loops, condições, strings, listas |
remover_pessoa() ❌ |
Remove cadastro da lista com confirmação | Busca, validação, remoção de listas, confirmação |
mostrar_estatisticas() 📊 |
Calcula estatísticas dos dados cadastrados | Funções matemáticas, loops, dicionários, análise |
main() 🎯 |
Função principal que coordena todo o sistema | Loop while, menu, todas as outras funções |
Exemplos Práticos Completos 💡
Programa | O que faz? 🎪 | Código Base |
---|---|---|
Diário Digital 📔 | Salva entradas de diário com data e hora | with open("diario.txt", "a") as arquivo: |
Sistema de Cadastro 👥 | Projeto final integrando todos os conceitos | pessoas = [] |
Backup de Lista 💾 | Salva e carrega listas em arquivos | # Salvar |
Dicas Importantes 💡
Dica | Por que é importante? 🌟 | Exemplo |
---|---|---|
Sempre use "with" | Garante que o arquivo seja fechado corretamente, evitando problemas | with open("arquivo.txt", "w") as f: |
Encoding="utf-8" | Permite usar acentos e caracteres especiais sem erro | open("dados.txt", "w", encoding="utf-8") |
Trate erros de arquivo | Arquivos podem não existir ou dar problema - sempre trate isso! | try: |
Organize em funções | Projetos grandes ficam mais fáceis quando cada parte tem sua função | def salvar_dados(): |
Teste tudo | No projeto final, teste todas as opções para garantir que funciona | Teste casos normais, extremos, entradas inválidas |