🚀 Capítulo 09: Investigando Arquivos
NOTE
Este capítulo utiliza a temática de Sherlock Holmes para explicar a leitura e escrita de arquivos em Python. Aprenda a persistir dados em arquivos de texto!
🎯 Objetivo da Aula
Compreender como abrir, ler e escrever em arquivos de texto usando Python, utilizando a boa prática do gerenciador de contexto with.
🏢 O Cenário Prático (Seu Desafio)
O detetive Sherlock Holmes precisa anotar todas as pistas de um caso para não esquecê-las. Se ele apenas guardar na mente (na memória RAM do computador), as pistas somem quando ele for dormir (quando o programa fechar). Para evitar isso, ele anota tudo em seu caderninho (arquivos salvos no disco rígido).
No Python, nós podemos criar e ler arquivos de texto muito facilmente.
- O desafio é usar as funções de arquivo para salvar as pistas do caso e depois lê-las de volta!
🧠 Fundamentos: A Teoria Traduzida
📝 1. O Jeito Moderno (with open):
Para mexer em arquivos, usamos a função open(). A melhor prática é usar junto com a palavra with. O with garante que o arquivo seja fechado automaticamente quando terminarmos de usar, mesmo se der algum erro no meio do caminho!
✍️ 2. Escrevendo em um Arquivo (Modo w):
O modo 'w' (write) apaga tudo o que tinha no arquivo e escreve do zero. Se o arquivo não existir, o Python cria ele para você!
with open("pistas.txt", "w") as arquivo:
arquivo.write("Suspeito 1: O Mordomo\n")
arquivo.write("Pista 2: Pegadas na lama\n")📖 3. Lendo um Arquivo (Modo r):
O modo 'r' (read) serve apenas para ler o conteúdo.
with open("pistas.txt", "r") as arquivo:
conteudo = arquivo.read()
print(conteudo)📖 Exemplo Guiado: Adicionando Pistas (Modo a)
Se você não quiser apagar o que já estava escrito, use o modo 'a' (append), que adiciona o novo texto no final do arquivo:
with open("pistas.txt", "a") as arquivo:
arquivo.write("Nova pista: Um bilhete rasgado.\n")
# Lendo para ver como ficou
with open("pistas.txt", "r") as arquivo:
print(arquivo.read())🛠️ Prática Obrigatória 1: Criando o Arquivo
- Escreva o código em Python para criar um arquivo chamado
diario.txte escrever nele a frase"Elementar, meu caro Watson."usando o blocowith.
🛠️ Prática Obrigatória 2: Modos de Abertura
- O que acontece se você tentar abrir um arquivo no modo
'r'(leitura), mas esse arquivo não existir na pasta?
📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
Neste curso, você entregará suas atividades enviando o código para o seu repositório no GitHub usando o aplicativo GitHub Desktop. Siga o passo a passo detalhado:
- Verifique a estrutura: Certifique-se de que sua estrutura de pastas final está idêntica à mostrada abaixo.
- Abra o GitHub Desktop: Certifique-se de que o repositório do seu curso está selecionado no canto superior esquerdo.
- Visualize as alterações: Na aba Changes (à esquerda), você verá todos os arquivos que criou ou modificou nesta aula.
- Faça o Commit:
- No campo Summary (na parte inferior esquerda), digite uma mensagem curta descrevendo o que fez, ex:
Finaliza atividades do Capítulo. - Clique no botão azul Commit to main (ou o nome da sua branch).
- No campo Summary (na parte inferior esquerda), digite uma mensagem curta descrevendo o que fez, ex:
- Envie para a Nuvem (Push): No topo da tela, clique no botão Push origin. Isso enviará seu código do seu computador para o seu perfil no GitHub.
- ⚠️ IMPORTANTE (Repositório Público): Para que o professor consiga corrigir, o seu repositório no GitHub DEVE SER PÚBLICO. Repositórios privados não podem ser visualizados por quem não foi convidado.
- Como entregar no Microsoft Teams:
- Copie o link do seu repositório no GitHub (ex:
https://github.com/seu-usuario/seu-repositorio). - Abra a tarefa correspondente no Microsoft Teams.
- Clique no botão Adicionar trabalho (ou Add work).
- Selecione a opção Link no menu lateral.
- Cole o link do GitHub no campo “Endereço Web” e digite um texto (ex:
Meu Repositório) no campo “Texto a ser exibido”. - Clique em Anexar.
- MUITO IMPORTANTE: Clique no botão Entregar (ou Turn in) no canto superior direito para concluir o envio!
- Copie o link do seu repositório no GitHub (ex:
📂 Estrutura de Pastas
spec_backend_com_python_e_fastapi/
├── capitulos/
│ └── capitulo_09_sherlock.md💡 Checkpoint de Lógica
O caractere \n serve para pular uma linha no arquivo de texto. Se você não colocar ele no final do write(), o Python vai escrever tudo grudado na mesma linha!
🔥 Desafio de Fixação (Opcional)
Pesquise como ler um arquivo de texto linha por linha usando um loop for (Dica: for linha in arquivo:).
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
with open("diario.txt", "w") as arquivo:
arquivo.write("Elementar, meu caro Watson.")Gabarito da Prática 2:
- O Python vai dar um erro do tipo
FileNotFoundErrore o programa vai parar (a menos que você trate comtry/except!).