ragfica.pages.dev

Como criar um script para identificar CPFs inválidos em massa?

Validar centenas ou milhares de CPFs manualmente é uma tarefa tediosa e propensa a erros. Com um script Python, você automatiza esse processo em segundos, garantindo precisão e economizando tempo valioso no processamento de dados.

Pré-requisitos

Passo 1: Entendendo o algoritmo de validação de CPF

Antes de escrever o código, é essencial entender como funciona a validação de CPF. O documento possui 11 dígitos, onde os dois últimos são verificadores, calculados a partir dos nove primeiros. O algoritmo aplica pesos decrescentes e operações de módulo 11 para garantir a autenticidade do número.

Passo 2: Criando o script Python para validação

Escreva o seguinte código em um arquivo chamado valida_cpf.py. Este script lê um arquivo cpfs.txt, valida cada CPF e salva os resultados em cpfs_validados.txt.

def valida_cpf(cpf):
    # Remove caracteres não numéricos
    cpf = ''.join(filter(str.isdigit, cpf))

    # Verifica se o CPF tem 11 dígitos
    if len(cpf) != 11:
        return False

    # Verifica se todos os dígitos são iguais (ex: 111.111.111-11)
    if cpf == cpf[0] * 11:
        return False

    # Calcula o primeiro dígito verificador
    soma = sum(int(digit) * peso for digit, peso in zip(cpf[:9], range(10, 1, -1)))
    resto = soma % 11
    digito1 = 0 if resto < 2 else 11 - resto

    # Calcula o segundo dígito verificador
    soma = sum(int(digit) * peso for digit, peso in zip(cpf[:10], range(11, 1, -1)))
    resto = soma % 11
    digito2 = 0 if resto < 2 else 11 - resto

    # Compara os dígitos calculados com os informados
    return digito1 == int(cpf[9]) and digito2 == int(cpf[10])

def processa_arquivo(arquivo_entrada, arquivo_saida):
    with open(arquivo_entrada, 'r') as f:
        cpfs = f.readlines()

    resultados = []
    for cpf in cpfs:
        cpf_limpo = cpf.strip()
        if valida_cpf(cpf_limpo):
            resultados.append(f"{cpf_limpo} - VÁLIDO")
        else:
            resultados.append(f"{cpf_limpo} - INVÁLIDO")

    with open(arquivo_saida, 'w') as f:
        f.write('\n'.join(resultados))

if __name__ == "__main__":
    processa_arquivo('cpfs.txt', 'cpfs_validados.txt')
    print("Validação concluída. Resultados salvos em 'cpfs_validados.txt'.")

Passo 3: Preparando o arquivo de entrada

Crie um arquivo de texto chamado cpfs.txt na mesma pasta do script. Cada linha deve conter um CPF, podendo incluir pontos e traços. Exemplo:

123.456.789-09
111.111.111-11
529.982.247-25

Passo 4: Executando o script

Abra o terminal ou prompt de comando, navegue até a pasta onde o script está salvo e execute:

python valida_cpf.py

O script processará todos os CPFs e criará um arquivo cpfs_validados.txt com o resultado de cada validação.

Exemplo Prático

CPF de Entrada Resultado Esperado
529.982.247-25 529.982.247-25 - VÁLIDO
123.456.789-09 123.456.789-09 - INVÁLIDO
111.111.111-11 111.111.111-11 - INVÁLIDO
529.982.247-00 529.982.247-00 - INVÁLIDO

Conclusão

Com este script Python, você transforma uma tarefa manual e demorada em um processo automatizado e confiável. Basta ajustar o nome do arquivo de entrada e executar o código para validar qualquer volume de CPFs em segundos, garantindo a integridade dos seus dados.