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 |