ragfica.pages.dev

Como criar um script para simular carga de validação de milhares de CPFs?

Validar milhares de CPFs manualmente é uma tarefa exaustiva e propensa a erros. Automatizar esse processo com um script não apenas economiza tempo, mas também garante precisão e consistência nos resultados. Este guia apresenta um método eficaz para simular a carga de validação de CPFs em larga escala.

Pré-requisitos

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

Primeiro, vamos criar um script Python que valide um CPF utilizando o algoritmo padrão. O script verificará os dígitos verificadores e retornará se o CPF é válido ou não.

def validar_cpf(cpf):
    cpf = ''.join(filter(str.isdigit, cpf))
    if len(cpf) != 11 or cpf == cpf[0] * 11:
        return False
    soma = sum(int(digito) * (10 - i) for i, digito in enumerate(cpf[:9]))
    resto = soma % 11
    digito1 = 0 if resto < 2 else 11 - resto
    soma = sum(int(digito) * (11 - i) for i, digito 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]

if __name__ == "__main__":
    import sys
    cpf = sys.argv[1]
    print("Válido" if validar_cpf(cpf) else "Inválido")

Passo 2: Ler o arquivo CSV e validar cada CPF

Agora, vamos criar um script que leia um arquivo CSV com milhares de CPFs e aplique a função de validação a cada um deles, registrando os resultados em um novo arquivo.

import csv

def validar_cpf(cpf):
    cpf = ''.join(filter(str.isdigit, cpf))
    if len(cpf) != 11 or cpf == cpf[0] * 11:
        return False
    soma = sum(int(digito) * (10 - i) for i, digito in enumerate(cpf[:9]))
    resto = soma % 11
    digito1 = 0 if resto < 2 else 11 - resto
    soma = sum(int(digito) * (11 - i) for i, digito 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]

with open('cpfs.csv', 'r') as arquivo_entrada, open('cpfs_validados.csv', 'w', newline='') as arquivo_saida:
    leitor = csv.reader(arquivo_entrada)
    escritor = csv.writer(arquivo_saida)
    escritor.writerow(['CPF', 'Status'])
    for linha in leitor:
        cpf = linha[0]
        status = 'Válido' if validar_cpf(cpf) else 'Inválido'
        escritor.writerow([cpf, status])

Passo 3: Executar o script

Com o script pronto, execute-o no terminal para processar o arquivo CSV e gerar o relatório de validação.

python validar_cpfs.py

Exemplo Prático

Veja abaixo um exemplo de como o arquivo de entrada e saída devem ser estruturados:

CPF (Entrada) Status (Saída)
12345678909 Inválido
11144477735 Válido
22233344456 Inválido
00000000000 Inválido

Conclusão

Com este método, você automatiza a tarefa de validação de milhares de CPFs em segundos, evitando erros manuais e garantindo a integridade dos dados. O script é simples, eficiente e pode ser facilmente adaptado para atender a diferentes necessidades de processamento de dados.