📊 Capítulo 12: Arquivos & pathlib Moderno
Especialização em Sistemas com Python
🗺️ A Revolução Orientada a Objetos da pathlib (PEP 428)
flowchart LR
subgraph LEGACY ["os / os.path (Legado - Concatenação Frágil de Strings)"]
OS1["caminho = os.path.join('dados', 'sub', 'relatorio.csv')\n(Manipulação de texto cru / Propenso a falhas de barra / vs \)"]
end
subgraph PATHLIB ["pathlib.Path (Padrão Moderno Orientado a Objetos)"]
P1["caminho = Path('dados') / 'sub' / 'relatorio.csv'\n(Operador barra '/' sobrecarregado / Métodos puros: read_text(), exists()) ⚡"]
end
LEGACY -.-> |"Migrar para"| PATHLIB
style LEGACY fill:#ffebee,stroke:#d32f2f,stroke-width:2px
style PATHLIB fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
🎯 Slide 1: Métodos Úteis de Path
from pathlib import Path
arquivo = Path("dados/vendas.json")
arquivo.parent.mkdir(parents=True, exist_ok=True)
# Leitura e escrita direta em UTF-8:
arquivo.write_text('{"total": 100}', encoding="utf-8")
conteudo = arquivo.read_text(encoding="utf-8")
🎯 Slide 2: Serialização JSON Segura
import json
# Sempre especifique ensure_ascii=False e indent para leitura humana:
with open("saida.json", "w", encoding="utf-8") as f:
json.dump(dados, f, ensure_ascii=False, indent=2)
🎯 Slide 3: Escrita Atômica de Arquivos
- Para evitar que arquivos fiquem corrompidos se a máquina reiniciar durante a gravação, escreva primeiro em um arquivo temporário (
vendas.tmp) e faça uma renomeação atômica (os.replace) para o destino final!
🔗 Navegação do Capítulo 12
| 📖 Ler Conteúdo Completo | 🧠 Fazer Quiz | 💻 Ver Exemplos | 🧩 Exercícios |
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim