Trabalhando com arquivos CSV em Python: leitura, escrita e processamento

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com arquivos CSV em Python

CSV (Comma Separated Values) é um dos formatos mais comuns para armazenar dados tabulares. Este formato é amplamente utilizado em diversas áreas: desde exportação de planilhas Excel até troca de informações entre serviços web e bancos de dados.

Python oferece ferramentas eficientes para trabalhar com arquivos CSV. Você pode usar o módulo básico csv ou a poderosa biblioteca pandas para análise de dados. Neste artigo, abordaremos métodos de leitura e escrita de arquivos CSV, processamento de dados, prevenção de erros e otimização de desempenho ao lidar com arquivos grandes.

Fundamentos do formato CSV

Estrutura de um arquivo CSV

CSV é um formato de texto simples. Cada linha do arquivo contém um registro. Os valores em cada registro são separados por caracteres especiais. Por padrão, usa-se a vírgula, mas também podem ser usados ponto e vírgula, tabulação ou barra vertical.

O conteúdo de um arquivo CSV padrão é assim:

Nome,Idade,Cidade
Ana,25,São Paulo
João,30,Rio de Janeiro

Vantagens do formato CSV

O formato CSV possui várias vantagens importantes:

  • Estrutura simples e legível
  • Suporte pela maioria dos programas e linguagens de programação
  • Tamanho de arquivo reduzido em comparação com outros formatos
  • Possibilidade de edição em editores de texto
  • Versatilidade para troca de dados entre diferentes sistemas

Trabalhando com CSV usando o módulo csv

Leitura básica de arquivos CSV

O módulo padrão csv do Python é ideal para operações básicas com arquivos CSV. Para ler dados de forma simples, use a seguinte abordagem:

import csv

with open("dados.csv", newline='', encoding='utf-8') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)

Resultado da execução:

['Nome', 'Idade', 'Cidade']
['Ana', '25', 'São Paulo']
['João', '30', 'Rio de Janeiro']

Leitura usando cabeçalhos

Para trabalhar com colunas nomeadas de forma mais prática, use csv.DictReader:

with open("dados.csv", encoding='utf-8') as f:
    reader = csv.DictReader(f)
    for row in reader:
        print(row["Nome"], row["Cidade"])

Este método cria automaticamente dicionários para cada linha. As chaves são os valores da primeira linha do arquivo.

Escrevendo dados em um arquivo CSV

Escrita simples de linhas

A forma básica de escrever dados usa csv.writer:

with open("saida.csv", mode='w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    writer.writerow(["Nome", "Idade"])
    writer.writerow(["Carlos", 35])

Escrita de dados em dicionário

Para escrever dados estruturados, use csv.DictWriter:

dados = [
    {"Nome": "Maria", "Idade": 28},
    {"Nome": "Alex", "Idade": 40},
]

with open("pessoas.csv", "w", newline='', encoding='utf-8') as f:
    writer = csv.DictWriter(f, fieldnames=["Nome", "Idade"])
    writer.writeheader()
    writer.writerows(dados)

Configuração de parâmetros de leitura e escrita

O módulo csv permite configurar vários parâmetros:

  • delimiter: define o delimitador de campos
  • quotechar: caractere para envolver valores entre aspas
  • skipinitialspace: ignorar espaços após o delimitador
  • lineterminator: caractere de fim de linha

Trabalhando com CSV na biblioteca pandas

Instalação e importação do pandas

A biblioteca pandas oferece recursos mais poderosos para trabalhar com arquivos CSV:

pip install pandas

Leitura de arquivos CSV com pandas

O método principal para ler arquivos CSV:

import pandas as pd

df = pd.read_csv("dados.csv")
print(df.head())

Isso carrega os dados em um DataFrame, uma estrutura de dados tabular que facilita análises complexas.

Escrevendo CSV com pandas

Para salvar um DataFrame como CSV:

df.to_csv("novo_arquivo.csv", index=False, encoding='utf-8')

O parâmetro index=False evita que o índice do DataFrame seja salvo como uma coluna extra.

Dicas de otimização e boas práticas

Tratamento de erros comuns

Ao trabalhar com CSV, alguns erros frequentes incluem:

  • Problemas de codificação: sempre especifique encoding='utf-8'
  • Delimitadores incorretos: verifique se o arquivo usa vírgula, ponto e vírgula ou tabulação
  • Valores ausentes: use parâmetros como na_values no pandas para tratar dados faltantes

Desempenho com arquivos grandes

Para arquivos CSV muito grandes, considere:

  • Usar chunksize no pandas para processar em partes
  • Ler apenas colunas específicas com usecols
  • Utilizar dtypes para otimizar o uso de memória

Com essas técnicas, você estará pronto para manipular arquivos CSV em Python de forma eficiente e profissional.

Blogs

Book Recommendations