flysmog.pages.dev

Como ignorar CPFs inválidos durante importação de CSV?

Importar dados de arquivos CSV é uma tarefa comum, mas lidar com CPFs inválidos pode causar erros e inconsistências nos seus dados. Este método apresenta uma solução robusta e automatizada para filtrar CPFs inválidos durante a importação, garantindo a integridade dos seus dados.

Pré-requisitos

Passo 1: Criar script de validação de CPF

Primeiro, vamos criar um script Python que valida CPFs usando o algoritmo oficial. O script irá filtrar apenas CPFs válidos do seu arquivo CSV.

import csv

def valida_cpf(cpf):
    cpf = ''.join(filter(str.isdigit, cpf))
    if len(cpf) != 11:
        return False
    if cpf == cpf[0] * 11:
        return False
    # Cálculo do primeiro dígito verificador
    soma = sum(int(digit) * (10 - i) for i, digit in enumerate(cpf[:9]))
    resto = soma % 11
    digito1 = 0 if resto < 2 else 11 - resto
    # Cálculo do segundo dígito verificador
    soma = sum(int(digit) * (11 - i) for i, digit in enumerate(cpf[:10]))
    resto = soma % 11
    digito2 = 0 if resto < 2 else 11 - resto
    return str(digito1) == cpf[9] and str(digito2) == cpf[10]

def filtra_cpfs_validos(input_file, output_file, cpf_column):
    with open(input_file, 'r', encoding='utf-8') as infile:
        reader = csv.DictReader(infile)
        fieldnames = reader.fieldnames
        with open(output_file, 'w', encoding='utf-8', newline='') as outfile:
            writer = csv.DictWriter(outfile, fieldnames=fieldnames)
            writer.writeheader()
            for row in reader:
                if valida_cpf(row[cpf_column]):
                    writer.writerow(row)

# Uso: filtra_cpfs_validos('arquivo_entrada.csv', 'arquivo_saida.csv', 'cpf')

Passo 2: Executar o script de filtragem

Salve o código acima em um arquivo chamado valida_cpf.py. Execute o script na linha de comando, especificando o arquivo de entrada, saída e o nome da coluna com CPFs.

python valida_cpf.py

Ou, se preferir integrar diretamente no seu código:

from valida_cpf import filtra_cpfs_validos

filtra_cpfs_validos('dados.csv', 'dados_filtrados.csv', 'cpf')

Passo 3: Importar o CSV filtrado

Agora que você tem um arquivo CSV com apenas CPFs válidos, pode importá-lo normalmente para o seu sistema ou banco de dados sem se preocupar com dados inválidos.

# Exemplo de importação usando pandas
import pandas as pd

df = pd.read_csv('dados_filtrados.csv')
# Continue com sua análise ou processamento

Exemplo Prático

CPF (Entrada) Válido? CPF (Saída Filtrada)
12345678901 Não -
11111111111 Não -
935.412.860-70 Sim 93541286070
123.456.789-09 Não -
98765432100 Sim 98765432100

Conclusão

Com este método, você automatiza completamente o processo de filtragem de CPFs inválidos durante a importação de CSV. O script Python garante que apenas dados válidos sejam processados, economizando tempo e eliminando erros manuais no seu fluxo de trabalho.