Especialização em Sistemas com Python & POO com Type Hints • Capítulo 12
🗺️ Mapa Conceitual do Tópico
flowchart LR
A["pathlib.Path('dados.csv')"] -->|"with open(..., 'r', encoding='utf-8')"| B["csv.DictReader"]
B -->|Transformação e Filtro| C["Processamento em Memória"]
C -->|"with open(..., 'w', encoding='utf-8')"| D["json.dump('consolidado.json')"]
style A fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style B fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style C fill:#ede7f6,stroke:#7e57c2,stroke-width:2px
style D fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
pathlib.Path: Interface orientada a objetos para caminhos de arquivos e pastas no Windows.
- Context Managers (
with): Garante fechamento automático de arquivos e liberação de descritores do sistema operacional.
- Codificação Explícita: Sempre especifique
encoding="utf-8" para evitar erros de caracteres no Windows.
💻 Exemplo Prático e Tipado
"""
exemplo_12_trabalhando_com_arquivos.py - Pipeline de Arquivos CSV e JSON
"""
import csv
import json
from pathlib import Path
def processar_faturamento_csv(caminho_csv: Path) -> dict[str, float]:
total_por_categoria = {}
with open(caminho_csv, mode="r", encoding="utf-8") as f:
leitor = csv.DictReader(f, delimiter=";")
for linha in leitor:
cat = linha["categoria"]
val = float(linha["valor"])
total_por_categoria[cat] = total_por_categoria.get(cat, 0.0) + val
return total_por_categoria
if __name__ == "__main__":
arquivo_mock = Path("vendas_temp.csv")
arquivo_mock.write_text("categoria;valor\nHardware;1500.0\nSoftware;300.0\nHardware;800.0", encoding="utf-8")
totais = processar_faturamento_csv(arquivo_mock)
print("Consolidação por Categoria:")
print(json.dumps(totais, indent=2))
arquivo_mock.unlink()
🔗 Recursos Pedagógicos do Capítulo 12
| Recurso Didático |
Finalidade |
Link de Acesso |
| 📊 Slides de Aula |
Apresentação visual interativa com Dark Mode e suporte a teclado |
Ver Slides |
| 🧠 Quiz Formativo |
Teste interativo de fixação com feedback imediato por alternativa |
Fazer Quiz |
| 💻 Exemplos de Código |
Demonstrações funcionais com Type Hints e saída no console |
Ver Exemplos |
| 🧩 Exercícios em 4 Níveis |
Lista progressiva de fixação com gabarito em bloco colapsável |
Resolver Exercícios |