Seja muito bem-vindo à Academy Code Christ!
🌍 Academy Code Christ está disponível em vários idiomas.Fique à vontade para usar o tradutor na Barra lateral (Sidebar) e aprender no seu idioma.
Python 🐍 Etapa 11
Trabalhando com Arquivos
🎯 Por que trabalhar com arquivos?
É aí que entra o manuseio de arquivos — você grava dados em disco e os lê quando precisar.
Python torna isso extremamente fácil, com comandos simples e claros, além de suporte nativo a diversos formatos, como:
● 🔹 TXT (texto simples)
● 🔹 CSV (planilhas simples)
● 🔹 JSON (dados estruturados)
● 🔹 Arquivos binários
Vamos começar com o básico: como abrir e manipular arquivos de texto.
Abrindo e lendo arquivos
Python oferece a função embutida open() para lidar com arquivos.
A sintaxe:
arquivo = open("dados.txt", "r")
conteudo = arquivo.read()
arquivo.close()
Parâmetros de open():
|
Modo |
Descrição |
|
"r" |
leitura (read) |
|
"w" |
escrita (write) – substitui conteúdo existente |
|
"a" |
anexar (append) – adiciona sem apagar |
|
"x" |
cria novo arquivo (erro se já existir) |
|
"b" |
binário (ex: "rb" ou "wb") |
|
"t" |
texto (modo padrão) |
Exemplo: lendo arquivo linha a linha
arquivo = open("nomes.txt", "r")
for linha in arquivo:
print(linha.strip()) # strip remove \n
arquivo.close()
Se o arquivo tiver este conteúdo:
Ana
Bruno
Carla
A saída será:
Ana
Bruno
Carla
Escrevendo em arquivos (write)
Para criar ou sobrescrever um arquivo:
arquivo = open("teste.txt", "w")
arquivo.write("Olá, Python!\n")
arquivo.write("Gravando dados em arquivo.")
arquivo.close()
Ao abrir teste.txt, o conteúdo será:
Olá, Python!
Gravando dados em arquivo.
⚠️ Atenção: o modo "w" apaga todo o conteúdo anterior do arquivo.
Adicionando conteúdo (append)
Usando "a", novos dados são acrescentados:
arquivo = open("teste.txt", "a")
arquivo.write("\nNova linha adicionada.")
arquivo.close()
Agora o arquivo conterá a linha extra no final.
Usando o gerenciador de contexto with
Sempre que possível, use a forma moderna:
with open("dados.txt", "r") as arquivo:
conteudo = arquivo.read()
print(conteudo)
⚙️ O with fecha o arquivo automaticamente, mesmo se ocorrer erro.
É mais limpo, seguro e evita o esquecimento de arquivo.close().
Lendo arquivos grandes: .readline() e .readlines()
● readline() → lê uma única linha.
● readlines() → retorna uma lista com todas as linhas.
with open("nomes.txt") as arq:
linhas = arq.readlines()
print(f"Total: {len(linhas)} linhas")
Escrevendo listas de forma eficiente
nomes = ["Ana\n", "Bruno\n", "Carla\n"]
with open("alunos.txt", "w") as f:
f.writelines(nomes)
Ao abrir o arquivo, as linhas estarão formatadas corretamente.
Manipulando arquivos CSV (planilhas simples)
Arquivos CSV (Comma-Separated Values) são amplamente usados para troca de dados, como planilhas do Excel.
O Python possui o módulo csv para facilitar leitura e escrita.
import csv
with open("clientes.csv", "w", newline="") as csvfile:
escritor = csv.writer(csvfile)
escritor.writerow(["Nome", "Idade", "Cidade"])
escritor.writerow(["Lucas", 25, "São Paulo"])
escritor.writerow(["Marina", 30, "Curitiba"])
Agora o arquivo clientes.csv conterá:
Nome,Idade,Cidade
Lucas,25,São Paulo
Marina,30,Curitiba
Lendo o CSV:
with open("clientes.csv", "r") as csvfile:
leitor = csv.reader(csvfile)
for linha in leitor:
print(linha)
Saída:
['Nome', 'Idade', 'Cidade']
['Lucas', '25', 'São Paulo']
['Marina', '30', 'Curitiba']
Usando o módulo json
JSON (JavaScript Object Notation) é o formato mais usado para troca de dados em APIs web.
Python possui suporte nativo com o módulo json.
Dicionário → JSON (salvar):
import json
dados = {
"nome": "Carlos",
"idade": 28,
"enderecos": ["SP", "RJ"]
}
with open("dados.json", "w") as arq:
json.dump(dados, arq, indent=4)
O arquivo dados.json conterá:
{
"nome": "Carlos",
"idade": 28,
"enderecos": ["SP", "RJ"]
}
JSON → Dicionário (ler):
with open("dados.json", "r") as arq:
conteudo = json.load(arq)
print(conteudo["nome"])
Saída:
Carlos
Atualizando dados JSON
with open("clientes.json", "r") as arq:
clientes = json.load(arq)
clientes.append({"nome": "Ana", "idade": 23})
with open("clientes.json", "w") as arq:
json.dump(clientes, arq, indent=4)
Dica: Sempre carregue, modifique e regrave o JSON — alterações diretas no arquivo são perigosas.
Trabalhando com caminhos de arquivos (os e pathlib)
O módulo os permite interagir com o sistema de arquivos:
import os
print("Diretório atual:", os.getcwd())
os.mkdir("novo_diretorio")
os.rename("teste.txt", "arquivo_antigo.txt")
O módulo pathlib é mais moderno e orientado a objetos:
from pathlib import Path
pasta = Path("documentos")
pasta.mkdir(exist_ok=True)
arquivo = pasta / "teste.txt"
arquivo.write_text("Olá, Pathlib!")
print(arquivo.read_text())
Tratando erros de arquivos
Erros são comuns: arquivos que não existem, permissões negadas, etc.
Use try/except:
try:
with open("inexistente.txt") as f:
print(f.read())
except FileNotFoundError:
print("Arquivo não encontrado!")
except PermissionError:
print("Sem permissão para ler.")
Criando logs de sistema
Gravar logs em arquivos é uma prática profissional.
Podemos usar logging, módulo embutido no Python.
import logging
logging.basicConfig(
filename="sistema.log",
level=logging.INFO,
format="%(asctime)s - %(message)s"
)
logging.info("Sistema iniciado")
logging.warning("Atenção: base de dados não encontrada")
O arquivo sistema.log guardará cada evento com data e hora.
Perfeito para monitorar aplicações reais.
Mini‑projeto prático: Registro de usuários
Vamos unir tudo o que aprendemos em um pequeno sistema de cadastro.
import json
from pathlib import Path
ARQUIVO = Path("usuarios.json")
# Cria arquivo vazio caso não exista
if not ARQUIVO.exists():
with open(ARQUIVO, "w") as f:
json.dump([], f)
def carregar_usuarios():
with open(ARQUIVO, "r") as f:
return json.load(f)
def salvar_usuarios(dados):
with open(ARQUIVO, "w") as f:
json.dump(dados, f, indent=4)
def cadastrar_usuario(nome, email):
usuarios = carregar_usuarios()
usuarios.append({"nome": nome, "email": email})
salvar_usuarios(usuarios)
print(f"Usuário {nome} cadastrado com sucesso!")
def listar_usuarios():
usuarios = carregar_usuarios()
if not usuarios:
print("Nenhum usuário cadastrado.")
else:
for u in usuarios:
print(f"- {u['nome']} ({u['email']})")
# --- Programa principal ---
while True:
print("\n[1] Cadastrar [2] Listar [3] Sair")
opcao = input("Escolha: ")
if opcao == "1":
nome = input("Nome: ")
email = input("E-mail: ")
cadastrar_usuario(nome, email)
elif opcao == "2":
listar_usuarios()
elif opcao == "3":
print("Saindo...")
break
else:
print("Opção inválida.")
Saída simulada:
[1] Cadastrar [2] Listar [3] Sair
Escolha: 1
Nome: Ana
E-mail: [email protected]
Usuário Ana cadastrado com sucesso!
[1] Cadastrar [2] Listar [3] Sair
Escolha: 2
- Ana ([email protected])
O arquivo usuarios.json conterá:
[
{
"nome": "Ana",
"email": "[email protected]"
}
]
🎯 Você acabou de criar um sistema com persistência real, totalmente funcional e escalável!
Boas práticas na manipulação de arquivos
1. Sempre use with open() — garante fechamento automático.
2. Verifique a existência dos arquivos antes de ler.
3. Utilize exceções para capturar erros.
4. Mantenha backups ou logs antes de sobrescrever dados.
5. Evite ler arquivos enormes de uma só vez — prefira leitura em blocos.
6. Trabalhe com caminhos relativos e Pathlib para portabilidade entre SOs.
Resumo
Nesta etapa, você aprendeu a:
✅
Criar, abrir, ler e escrever arquivos de texto.
✅ Acrescentar informações usando modo "a".
✅ Utilizar with para garantir segurança e
elegância.
✅ Manipular formatos CSV e
JSON.
✅ Tratar erros e criar logs.
✅ Interagir com o sistema de arquivos (os e pathlib).
✅ Construir um mini‑projeto
completo de cadastro persistente.
Agora você sabe armazenar e recuperar dados — um pilar central da programação em qualquer nível profissional.
🚀 Na próxima etapa, entraremos no fascinante mundo do tratamento e visualização de dados, onde aprenderemos a analisar informações e transformá‑las em insights usando Pandas e Matplotlib!

%20-%20Copia.png)
.png)
.png)
.png)
Postar um comentário