Python CSV: lendo e escrevendo planilhas
Aprenda como lidar com dados CSV em Python. Domine csv.reader, csv.writer e DictReader/DictWriter para análise eficiente de tabelas.
Visão geral
CSV (valores separados por vírgula) é um formato onipresente para exportar e importar dados de planilhas e bancos de dados relacionais. Como os arquivos CSV são arquivos de texto simples, eles são universalmente suportados por ferramentas analíticas, plataformas de banco de dados e linguagens de programação. Python apresenta um módulo `csv` integrado especificamente otimizado para analisar, escrever e manipular dados tabulares sem a necessidade de bibliotecas de terceiros como o pandas.
O módulo csv fornece duas interfaces principais: leitores/gravadores baseados em lista e leitores/gravadores baseados em dicionário. `csv.reader()` e `csv.writer()` representam cada linha no CSV como uma lista de strings, o que é simples, mas requer referência a colunas por seu índice numérico. Para uma abordagem mais robusta, os desenvolvedores usam `csv.DictReader()` e `csv.DictWriter()`. Essas classes mapeiam cada linha para um dicionário usando a linha do cabeçalho CSV como chaves, produzindo código altamente legível que não quebra se as colunas forem reordenadas.
Ao lidar com arquivos CSV, os detalhes da sintaxe são importantes. Programas diferentes usam delimitadores diferentes (como tabulações ou ponto e vírgula) e lidam com aspas ou finais de linha de maneiras distintas. O módulo `csv` permite definir delimitadores personalizados, regras de cotação e caracteres de escape por meio de um parâmetro 'dialeto'. Além disso, ao abrir arquivos CSV em Python, é um requisito crítico passar `newline=''` para a função `open()` para evitar problemas de linha em branco em diferentes sistemas operacionais.
Saída de código e execução
Gravar dados em um arquivo CSV usando DictWriter e lê-los novamente com DictReader.
import csv
filename = "employees.csv"
fieldnames = ["id", "name", "department"]
data = [
{"id": "101", "name": "Bob", "department": "HR"},
{"id": "102", "name": "Alice", "department": "Engineering"}
]
# Write dict data to CSV
with open(filename, "w", newline="") as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
print("CSV written successfully.\n--- Reading CSV ---")
# Read CSV data back as dictionaries
with open(filename, "r", newline="") as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(f"Employee {row['name']} works in {row['department']}.")CSV written successfully.
--- Reading CSV ---
Employee Bob works in HR.
Employee Alice works in Engineering.Implementação passo a passo
- Exportando registros de planilhas para análise financeira
- Importando catálogos de listas de contatos para bancos de dados
- Formatando saídas estatísticas de scripts computacionais
Perguntas frequentes
Por que preciso especificar newline="" ao abrir um arquivo CSV?
Isso é exigido pelo gravador interno do módulo csv para evitar a inserção de linhas em branco extras, principalmente em plataformas Windows.
Como posso analisar um arquivo CSV que usa tabulações em vez de vírgulas?
Você pode passar o parâmetro delimitador para o leitor ou gravador, por exemplo, csv.reader(file, delimiter='\t').
Tópicos Relacionados
Aprenda a ler e escrever arquivos em Python. Domine open(), read(), write() e gerenciadores de contexto para lidar com operações de arquivo com segurança sem vazamentos de recursos.
Análise Python JSONAprenda como ler, escrever e analisar dados JSON em Python. Domine json.loads, json.dumps e personalize codificadores/decodificadores JSON.
Recursos Python recomendados
Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.
Como ler e analisar um arquivo CSV em Python
Aprenda como ler e analisar arquivos CSV em Python usando o módulo csv integrado. Domine a leitura como listas, leitores de dicionário e delimitadores personalizados.
Folha de dicas dos métodos de string Python
Um guia de referência completo para manipulação de strings em Python. Domine a formatação, pesquisa, divisão, substituição e verificação de propriedades de string.
Python vs JavaScript: qual linguagem de programação é a melhor?
Uma comparação abrangente entre Python e JavaScript. Explore diferenças de sintaxe, desempenho, casos de uso (backend versus frontend) e exemplos de codificação.