Rullst AcademyRullst Academy/Lição
Python: da primeira linha ao projeto · Lição 10 / 12

Arquivos que lembram depois de fechar

A memória do programa termina quando ele fecha. Um arquivo permite reencontrar os dados, desde que a gravação e a leitura sejam conferidas.

Trilhas de aprendizado12 min

Vamos descobrir juntos

  1. 1

    JSON é um formato de texto para dados. Python usa False; JSON usa false. json.dump e json.load fazem a tradução entre valores suportados, como listas, dicionários, números e booleanos.

  2. 2

    Na versão 1, Path aponta para my-missions.json na pasta atual do terminal. open("x") cria um arquivo novo e falha se ele já existir. with fecha o arquivo ao sair do bloco.

  3. 3

    O segundo bloco abre o arquivo para leitura com UTF-8; json.load recupera os dados. Execute em uma pasta de prática. Para repetir, escolha outro nome ou preserve o arquivo anterior; não troque por "w" sem entender que ele substitui o conteúdo.

  4. 4

    JSON válido não garante dados adequados: "minutes": "dez" ainda seria texto. O projeto final verifica campos e tipos. Um arquivo salvo também não é automaticamente um backup nem um envio ao GitHub.

✦
SUA MISSÃO

Gravar e reler dados JSON; distinguir persistência, validação e backup.

Agora é a sua vez

Oficina de descobertas

Leia, preveja, confira

Compare as duas versões. Mostrar resultado revela uma saída preparada: este painel não executa Python. Depois pratique com o arquivo da atividade.
Mini experimento

Simulação didática: compare os cartões e confira suas previsões. O navegador não está compilando Rust nem iniciando um servidor.

import json
from pathlib import Path

tasks = [{"title": "Tico", "minutes": 10, "done": False}]
path = Path("my-missions.json")
with path.open("x", encoding="utf-8") as file:
    json.dump(tasks, file)
with path.open(encoding="utf-8") as file:
    restored = json.load(file)
print(restored[0]["minutes"])
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

O que open("x") faz quando o arquivo já existe?

Preciso de uma pista

O modo x é criação exclusiva, não sobrescrita.

Carregando sua jornada…

Leve com você

Execute na pasta de prática e abra my-missions.json no editor. Execute novamente e observe FileExistsError. Confira que o primeiro arquivo foi preservado. Depois mude o nome de saída e uma duração e repita.

PYTHON · .py

Sua bancada Python

Aqui você lê e prevê saídas preparadas. Para executar o código de verdade, baixe o arquivo da atividade, edite no computador e use Python. A correção da Rullst Academy avalia as respostas da lição, não comprova a execução local.

Salvar e executar

Extraia o ZIP da atividade numa pasta própria. Abra o terminal nessa pasta e use o comando do seu sistema. Se baixar o arquivo editado separadamente, use o nome real dele no comando. Salve antes de executar novamente.

Windows
python lesson.py
macOS / Ubuntu
python3 lesson.py
Meus arquivos e GitHub

O editor mantém um rascunho local e pode enviar um arquivo .py ao GitHub com sua confirmação. Baixe seu código editado para preservá-lo. O ZIP é material inicial; no projeto final, publique também os arquivos de dados e testes seguindo PUBLISH.md.

No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.