Você já precisou lidar com diferentes tipos de arquivos em seus projetos Python? Como desenvolvedor sênior, vejo muitos programadores lutando para manipular arquivos corretamente, especialmente quando se trata de formatos mais complexos como CSV, Excel ou imagens.
A verdade é que manipular arquivos de forma eficiente é uma habilidade essencial. Vou mostrar não só o básico, mas também como lidar com diferentes tipos de arquivos de forma profissional.
Arquivos de Texto Básicos 📝
# python# Lendo arquivos de texto
with open("arquivo.txt", "r", encoding="utf-8") as arquivo:
# Lê todo o conteúdo
conteudo = arquivo.read()
# Volta ao início do arquivo
arquivo.seek(0)
# Lê linha por linha
linhas = arquivo.readlines()
# Lê linha por linha de forma eficiente
for linha in arquivo:
print(linha.strip())
# Escrevendo em arquivos
with open("arquivo.txt", "w", encoding="utf-8") as arquivo:
arquivo.write("Olá, Mundo!\n")
arquivo.writelines(["Linha 1\n", "Linha 2\n"])
# Adicionando conteúdo
with open("arquivo.txt", "a", encoding="utf-8") as arquivo:
arquivo.write("Mais conteúdo")
Trabalhando com CSV 📊
# pythonimport csv
import pandas as pd
# Lendo CSV com csv nativo
with open("dados.csv", "r", encoding="utf-8") as arquivo:
leitor = csv.DictReader(arquivo)
for linha in leitor:
print(f"Nome: {linha['nome']}, Idade: {linha['idade']}")
# Escrevendo CSV com csv nativo
dados = [
{'nome': 'João', 'idade': 25},
{'nome': 'Maria', 'idade': 30}
]
with open("novos_dados.csv", "w", encoding="utf-8", newline='') as arquivo:
escritor = csv.DictWriter(arquivo, fieldnames=['nome', 'idade'])
escritor.writeheader()
escritor.writerows(dados)
# Usando pandas para CSV (mais recomendado)
# Lendo
df = pd.read_csv("dados.csv")
# Escrevendo
df.to_csv("exportado.csv", index=False)
Manipulando Excel (XLSX) 📈
# pythonimport pandas as pd
from openpyxl import Workbook, load_workbook
# Usando pandas
# Lendo Excel
df = pd.read_excel("dados.xlsx", sheet_name="Planilha1")
# Escrevendo Excel
df.to_excel("novo.xlsx", sheet_name="Dados", index=False)
# Usando openpyxl para mais controle
# Criando novo arquivo
wb = Workbook()
ws = wb.active
ws.title = "Minha Planilha"
ws['A1'] = "Nome"
ws['B1'] = "Idade"
wb.save("arquivo.xlsx")
# Lendo e modificando existente
wb = load_workbook("arquivo.xlsx")
ws = wb['Minha Planilha']
for row in ws.iter_rows(min_row=2, values_only=True):
print(row)
Trabalhando com Imagens 🖼️
# pythonfrom PIL import Image
import matplotlib.pyplot as plt
# Usando Pillow (PIL)
# Abrindo imagem
imagem = Image.open("foto.jpg")
# Redimensionando
nova_imagem = imagem.resize((800, 600))
# Rotacionando
rotacionada = imagem.rotate(90)
# Salvando
nova_imagem.save("redimensionada.jpg")
# Usando matplotlib
# Lendo e mostrando imagem
plt.imread("foto.jpg")
plt.imshow(imagem)
plt.axis('off')
plt.show()
Dicas Profissionais 💡
Sempre Use Context Manager (with)
# Corretowith open("arquivo.txt") as f:
conteudo = f.read()
# Evite
f = open("arquivo.txt")
conteudo = f.read()
f.close() # Pode esquecer de fechar
Trate Erros Adequadamente
try:
with open("arquivo.txt") as arquivo:
conteudo = arquivo.read()
except FileNotFoundError:
print("Arquivo não encontrado!")
except PermissionError:
print("Sem permissão para ler o arquivo!")
Use os Pacotes Certos para Cada Tipo de Arquivo
# Para CSV/Excel grandes: use pandas
import pandas as pd
df = pd.read_csv("grande.csv", chunksize=1000)
# Para imagens: use Pillow
from PIL import Image
imagem = Image.open("foto.jpg")
# Para arquivos binários: use bytesIO
from io import BytesIO
E você, qual tipo de arquivo você mais manipula em seus projetos? Já teve alguma dificuldade específica ao trabalhar com algum formato? Compartilhe nos comentários suas experiências e dúvidas sobre manipulação de arquivos!
Lembre-se: manipular arquivos de forma eficiente e segura é uma marca registrada de um programador profissional. Pratique esses conceitos e eleve seu código ao próximo nível!
Deixe um comentário