0Pricing
Python Academy · Aula

Leitura de CSV com csv.reader

Leia arquivos CSV linha a linha e acesse colunas por índice.

Leitura de CSV com csv.reader é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.

Introdução

O módulo csv do Python lida com as complexidades dos arquivos CSV: campos entre aspas, delimitadores e diferentes terminações de linha.

Abrindo um arquivo CSV

with open('data.csv', newline='') as f: é a forma recomendada — newline='' permite que o módulo csv lide com as terminações de linha.
import csv, io
sample = 'name,age,city\nAlice,30,NYC\nBob,25,LA'
reader = csv.reader(io.StringIO(sample))
for row in reader:
    print(row)

Noções básicas de csv.reader

csv.reader(f) retorna um iterador de linhas, em que cada linha é uma lista de strings.
import csv, io
data = 'a,b,c\n1,2,3\n4,5,6'
for row in csv.reader(io.StringIO(data)):
    print(row)

Ignorando o cabeçalho

next(reader) ignora a linha de cabeçalho. Ou use csv.DictReader para acessar as colunas pelo nome.
import csv, io
data = 'name,age\nAlice,30\nBob,25'
reader = csv.reader(io.StringIO(data))
header = next(reader)  # skip
for row in reader:
    print(row)

Delimitador personalizado

csv.reader(f, delimiter=';') lê arquivos separados por ponto e vírgula. Funciona com qualquer delimitador de um único caractere.
import csv, io
data = 'a;b;c\n1;2;3'
for row in csv.reader(io.StringIO(data), delimiter=';'):
    print(row)

Lidando com campos entre aspas

csv.reader lida automaticamente com campos entre aspas: 'Alice, Jr.' permanece como um único campo.
import csv, io
data = 'name,note\n"Smith, John","great guy"'
for row in csv.reader(io.StringIO(data)):
    print(row)

csv.DictReader

DictReader mapeia cada linha para um OrderedDict (ou para um dict comum na versão 3.8 ou posterior), usando a linha de cabeçalho como chaves.
import csv, io
data = 'name,age\nAlice,30\nBob,25'
for row in csv.DictReader(io.StringIO(data)):
    print(row['name'], row['age'])

Conversão de tipos

Os valores CSV são sempre strings. Faça a conversão explicitamente: int(row['age']), float(row['price']).
import csv, io
data = 'item,price\napple,1.5\nbanana,0.75'
for row in csv.DictReader(io.StringIO(data)):
    print(row['item'], float(row['price'])*2)

Lidando com a codificação

open(file, encoding='utf-8-sig') lida com o BOM UTF-8 (comum em CSVs gerados pelo Excel).
# with open('data.csv', encoding='utf-8-sig', newline='') as f:
#     reader = csv.DictReader(f)
print('encoding demo')

Arquivos CSV grandes

csv.reader é preguiçoso — lê uma linha por vez. Não é necessário carregar o arquivo inteiro na memória.
import csv, io
data = '\n'.join(f'{i},{i*2}' for i in range(1000))
reader = csv.reader(io.StringIO(data))
print(sum(int(row[0]) for row in reader))

Detectando o dialeto

csv.Sniffer().sniff(sample) detecta automaticamente o delimitador e o estilo de uso de aspas.
import csv, io
data = 'a|b|c\n1|2|3'
sniff = csv.Sniffer().sniff(data[:100])
print('delimiter:', sniff.delimiter)
for row in csv.reader(io.StringIO(data), dialect=sniff):
    print(row)

Verificação rápida

Qual parâmetro deve ser sempre definido ao abrir um arquivo CSV com open()?

Recapitulação

csv.reader: linhas como listas de strings. DictReader: linhas como dicionários. Sempre abra com newline=''. Lide com a codificação dos arquivos do Excel. Converta os tipos explicitamente.

Continue

Muito bem! Passe para a próxima lição.

Perguntas Frequentes

A aula “Leitura de CSV com csv.reader” é grátis?

Sim — o texto completo de “Leitura de CSV com csv.reader” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.

O que vou aprender em “Leitura de CSV com csv.reader”?

Leia arquivos CSV linha a linha e acesse colunas por índice. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Python Academy?

Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Leitura de CSV com csv.reader”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Python Academy?

Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Codificação e decodificação de JSON
  2. Tratamento de estruturas JSON aninhadas
  3. Leitura de CSV com csv.reader
  4. Escrita de CSV com csv.DictWriter
← Voltar para Python Academy