Um gigabyte de CSV são cerca de cinco a dez milhões de linhas de dados tabulares comuns. Esse número importa mais que o gigabyte, porque já é cinco vezes o que cabe em uma planilha, então a primeira coisa a aceitar é que “abrir no Excel” nunca esteve entre as opções.
O que sobra depende de uma pergunta: você precisa olhar o arquivo ou precisa tirar uma resposta dele?
- Uma resposta — um total, um filtro, um join, a contagem de duplicados: DuckDB. Um comando, dez segundos, sem importar nada.
- Olhar — rolar, buscar, ter uma ideia do formato dos dados: um visualizador feito para ler em streaming. EmEditor no Windows,
lessem qualquer lugar, um app de celular se o arquivo estiver lá. - Editar e salvar de volta: o caso mais difícil, com menos respostas boas. Veja abaixo.
A comparação
Os tempos valem para um arquivo de 1 GB com cerca de 8 milhões de linhas em um notebook comum de 16 GB com SSD. São indicativos, não benchmarks. Suas colunas e seu disco vão mudá-los. A coluna que não muda é a última.
| Ferramenta | Abre 1 GB? | Tempo até a primeira linha | Pico de RAM | Custo |
|---|---|---|---|---|
| Excel | Não — limite de 1.048.576 linhas | — | — | Pago |
| Excel + Power Query | Sim, como etapa de carga | Minutos | Alto | Pago |
| Google Sheets | Não — 10 mi de células, ~100 MB de upload | — | — | Grátis |
| Numbers | Não — 1 mi de linhas, e fica lento antes | — | — | Grátis |
| DuckDB | Sim | ~1 s | ~200 MB | Grátis |
| Python + pandas | Sim, com chunksize | 30 s+ | 5–10 GB se usado do jeito ingênuo | Grátis |
| Python + Polars | Sim | ~5 s | ~1,5 GB | Grátis |
| EmEditor (Windows) | Sim, com folga | ~5 s | Baixo | Pago |
| VS Code | Sofre | 30 s+ | Alto | Grátis |
less / head / awk | Sim | Instantâneo | ~0 | Grátis |
| OpenRefine | Sim, devagar | Minutos | Alto | Grátis |
| App de CSV para celular | Sim, se for feito para isso | Segundos | Gerenciado | Plano gratuito |
Duas linhas são armadilhas. O Google Sheets anuncia 10 milhões de células, o que parece perto, mas um arquivo de 20 colunas atinge esse limite com 500.000 linhas, e o limite de upload te barra muito antes. O pandas abre o arquivo sem reclamar e depois usa oito vezes o tamanho dele em RAM, porque guarda cada coluna de texto como objetos Python. É a experiência de “abriu, mas o notebook morreu” por causa do swap descontrolado.
Conforme o que você está fazendo de verdade
Você precisa de uma resposta
DuckDB, e não é nem uma disputa apertada:
duckdb -c "SELECT region, COUNT(*), SUM(amount) FROM 'big.csv' GROUP BY region"
Ele lê o arquivo em paralelo, processa em streaming em vez de carregar tudo e nunca aloca muito mais que o espaço de trabalho da sua consulta. Um GROUP BY sobre 8 milhões de linhas termina em alguns segundos. O tratamento completo (forçar tipos, juntar dois arquivos, gravar os resultados) está em executar consultas SQL em um CSV sem banco de dados.
Se preferir ficar no Python, use o Polars com scan_csv (preguiçoso: planeja a consulta inteira antes de ler) ou o pandas com um chunksize explícito e um mapa de dtype. O que você deve evitar é o pd.read_csv('big.csv') ingênuo.
Você precisa olhar o arquivo
No Windows, o EmEditor. É o único editor de arquivos grandes que aguenta, e abre CSVs de vários GB como uma grade, com ordenação e filtro. É pago; vale o preço se esse problema for recorrente.
Em qualquer lugar, o shell. Subestimado nos primeiros cinco minutos com qualquer arquivo grande:
head -5 big.csv # what are the columns
wc -l big.csv # how many rows really
awk -F, 'NR<=1000' big.csv > sample.csv # a slice you can open normally
less -S big.csv # scroll it, no line wrapping
Fazer uma amostra de 1.000 linhas e abrir essa no Excel responde “o que tem neste arquivo?” mais rápido que qualquer ferramenta que abra o arquivo todo.
Nem VS Code, nem Notepad++. Os dois carregam o arquivo inteiro na memória como texto. Conseguem, só que devagar, com um aviso e sem uma visualização em tabela útil no fim.
O arquivo está no seu celular
O caso de 1 GB é difícil aqui: celulares têm menos RAM que notebooks e limites mais rígidos para o que um app pode manter. Nada no celular abre um gigabyte inteiro com conforto, então teste qualquer app que diga o contrário antes de confiar nele. O que os apps de celular fazem bem é a faixa logo abaixo: exportações de 100–500 MB e várias centenas de milhares de linhas, que uma planilha de celular trunca em silêncio.
Abre arquivos grandes sem truncá-los e depois responde perguntas sobre os dados com SQL ou em linguagem natural, que normalmente é o que você queria de um arquivo grande demais para rolar. iOS e Android.
O que ele fazAntes de confiar um arquivo importante a um app de celular, faça a verificação da última seção desta página.
Você precisa editar e salvar de volta
Este é o caso com menos respostas honestas, porque “editar” significa manter o arquivo e gravá-lo inteiro de novo.
- Algumas mudanças pontuais — corrigir um valor, remover uma coluna: faça com DuckDB ou
awke grave um arquivo novo. É mais rápido que qualquer ferramenta interativa e deixa o original intacto. - Edição interativa de verdade no Windows: EmEditor.
- Edição interativa de verdade em outros sistemas: divida o arquivo antes.
split -l 1000000 big.csv part_gera pedaços que uma planilha comporta, ao custo de ter que juntá-los depois (catfunciona, mas apague as linhas de cabeçalho repetidas). - Abaixo de cerca de 500.000 linhas, um editor de celular resolve direto:
Edição no estilo planilha em arquivos de 500.000 linhas, com todas as linhas regravadas ao salvar, inclusive na versão gratuita. iOS e iPadOS.
O que ele fazConvertendo o problema para fora do caminho
Se você vai mexer no arquivo mais de duas vezes, pare de tratá-lo como CSV:
duckdb -c "COPY (SELECT * FROM 'big.csv') TO 'big.parquet'"
Parquet é colunar, tipado e comprimido. O CSV de 1 GB vira 100–200 MB, as consultas que varrem poucas colunas ficam de cinco a vinte vezes mais rápidas, e os tipos contra os quais você brigava agora ficam guardados no arquivo. DuckDB, Polars e pandas o leem nativamente. São os dez segundos de maior valor deste artigo.
Testando se uma ferramenta realmente abriu tudo
Muitas ferramentas abrem um CSV grande abrindo só parte dele, sem dizer qual. Antes de tirar uma conclusão de um arquivo, verifique:
- Conte as linhas primeiro, fora da ferramenta:
wc -l big.csv. Subtraia um pelo cabeçalho. - Vá até a última linha na ferramenta e compare a contagem.
- Compare o conteúdo da última linha com
tail -1 big.csv.
Se não baterem, a ferramenta truncou. Qualquer conclusão que você tirar (um total, um máximo, “não há pedidos dessa região”) estará errada de um jeito que nada na tela avisa. O truncamento silencioso é o perigo real com arquivos grandes, mais que travamentos: um travamento, pelo menos, é honesto.
Se foi especificamente o Excel que falhou
Dois problemas vizinhos que são fáceis de confundir. Se o Excel recusou o arquivo ou mostrou só uma parte, é o limite de linhas, e como abrir um arquivo CSV grande que o Excel não abre mostra os caminhos para contorná-lo. Se o Excel abriu o arquivo e depois congelou, travou ou fechou, é outra falha com outras causas, explicada em por que o Excel trava com arquivos grandes.