Inteligência artificial, sem ruído.
Tutoriais5 min

5 scripts Python para automatizar o processamento de arquivos CSV

Cinco scripts Python com biblioteca padrão para validar schema, comparar versões, normalizar encoding e anonimizar dados em CSVs.

5 scripts Python para automatizar o processamento de arquivos CSV

Arquivos CSV aparecem em quase todo fluxo de dados: exportações de bancos, aplicações e jobs em lote frequentemente chegam como .csv, acompanhados de problemas como delimitadores inconsistentes, erros de encoding, mudanças de schema e linhas duplicadas. As correções são pequenas, mas o trabalho é repetitivo, fácil de errar sob pressão e raramente justifica construir uma ferramenta sob medida. Estes cinco scripts resolvem as tarefas mais comuns usando apenas a biblioteca padrão do Python — sem dependências de terceiros.

1. Validador de schema

A dor: um CSV que “parece certo” na pré-visualização pode estar sem uma coluna obrigatória, com um campo de data cheio de texto ou com uma coluna numérica que ganhou strings vazias. Esses problemas costumam aparecer só no sistema que consome o arquivo, o que torna a origem cara de rastrear.

O que faz: valida o CSV contra um schema definido por você — colunas obrigatórias, tipos esperados e restrições simples como “não pode ser vazio” ou “deve casar com um padrão”. Em vez de um veredito binário, gera um relatório de erro linha por linha.

Como funciona: o schema fica num pequeno JSON (cada coluna mapeia para int, float, date, string, email, um regex opcional e se é obrigatória). O script usa csv.DictReader para ler linha a linha sem carregar tudo em memória, e sai com código de erro quando a validação falha — ideal como gate num pipeline.

2. Diff de linhas entre versões

A dor: comparar duas versões do mesmo CSV (o export de ontem vs o de hoje, ou o arquivo-fonte vs o que caiu no banco) geralmente vira revisão lado a lado de duas planilhas, fácil de deixar passar mudanças conforme as linhas crescem.

O que faz: compara dois CSVs usando uma coluna-chave (ou combinação de colunas) e reporta o que foi adicionado, removido ou alterado campo a campo. Linhas inalteradas são ignoradas.

Como funciona: os dois arquivos são lidos em dicionários indexados pela chave. O script computa diferenças de conjuntos para achar chaves novas e removidas, compara cada coluna das linhas presentes em ambos e registra só as colunas que mudaram, com valor antigo e novo.

3. Normalizador de encoding e delimitador

A dor: nem todo CSV é separado por vírgula, e nem todo CSV é UTF-8. Sistemas antigos entregam arquivos com ponto e vírgula, tabulação ou BOM que quebra o cabeçalho da primeira coluna — e o parse acontece errado sem reclamar.

O que faz: detecta delimitador e encoding do arquivo, então o reescreve como CSV limpo em UTF-8 com vírgulas. Remove BOM, normaliza quebras de linha e reporta o que detectou e mudou.

Como funciona: lê uma amostra em modo binário e tenta uma lista curta de encodings comuns; o csv.Sniffer adivinha o delimitador entre vírgula, ponto e vírgula, tab e pipe. O arquivo é relido com as configurações detectadas e regravado no dialect padrão do Python.

4. Transformador de colunas configurável

A dor: renomear, reordenar, descartar e derivar colunas é fácil numa planilha para um arquivo — mas fazer isso de forma consistente em dezenas de arquivos, ou toda vez que chega um export novo, é onde vale automatizar.

O que faz: aplica operações de coluna definidas em um arquivo de configuração: rename, drop, reorder e derive. Colunas derivadas usam uma sintaxe de expressão simples e segura, sem executar código Python arbitrário.

Como funciona: a configuração é uma lista JSON de operações processadas em ordem. Operações derive usam templates como {first_name} {last_name} com funções de conversão registradas (to_float, to_int, strip_currency). O processamento é streaming, mantendo a memória constante.

5. Amostrador e anonimizador de campos

A dor: compartilhar uma fatia de dados de produção — com um colega, um chamado de suporte ou um ambiente de teste — significa enviar o arquivo inteiro ou redigir manualmente colunas sensíveis na planilha.

O que faz: tira uma amostra aleatória de linhas de um CSV grande e, nas colunas marcadas como sensíveis, substitui valores reais por placeholders consistentes e irreversíveis — o mesmo valor de entrada sempre produz a mesma saída mascarada, preservando relações entre linhas sem expor os dados originais.

Como funciona: usa reservoir sampling para extrair uma amostra uniforme sem carregar o arquivo inteiro em memória. Para cada coluna sensível, aplica um hash com chave e trunca o resultado num token legível — e-mails, por exemplo, viram valores pseudônimos consistentes.

Resumo dos cinco scripts

ScriptPropósitoMelhor caso de uso
Schema ValidatorValidar contra um schema definidoGate antes do dado entrar no pipeline
Row-Level DiffComparar duas versõesAuditar exports entre execuções
Encoding & Delimiter NormalizerPadronizar CSVs inconsistentesLimpar arquivos de sistemas legados
Column TransformerRenomear, descartar, derivar colunasRepetir o mesmo reshape em muitos arquivos
Sampler & AnonymizerAmostrar e mascarar campos sensíveisCompartilhar dados realistas com segurança
Cinco scripts para as tarefas de CSV que aparecem o tempo todo.

O ponto em comum: são tarefas que aparecem constantemente, mas não justificam escrever código do zero toda vez. Escolha a que casa com o seu problema atual e automatize de vez. Você encontra todos os scripts no GitHub do artigo original.


Descubra mais sobre noticiAI

Assine para receber nossas notícias mais recentes por e-mail.

R
Sobre o autorRedação Noticiai

Equipe editorial dedicada a explicar inteligência artificial com clareza, independência e contexto.