catbean.pages.dev

Como validar CPF offline com Python?

Validar CPFs manualmente é trabalhoso e propenso a erros. Este método oferece uma solução rápida e confiável usando um script Python simples, permitindo que você verifique centenas de CPFs em segundos, sem depender de conexão com a internet.

Pré-requisitos

Criando o script de validação

O script abaixo implementa o algoritmo oficial de validação de CPF, calculando e verificando os dois dígitos verificadores. Salve este código em um arquivo chamado valida_cpf.py.

def valida_cpf(cpf):
    cpf = ''.join(filter(str.isdigit, cpf))
    if len(cpf) != 11 or cpf == cpf[0] * 11:
        return False

    def calcula_digito(pesos):
        soma = sum(int(digito) * peso for digito, peso in zip(cpf[:9], pesos))
        resto = soma % 11
        return 0 if resto < 2 else 11 - resto

    digito1 = calcula_digito(range(10, 1, -1))
    digito2 = calcula_digito(range(11, 1, -1))

    return digito1 == int(cpf[9]) and digito2 == int(cpf[10])

def valida_arquivo(arquivo_entrada, arquivo_saida):
    with open(arquivo_entrada, 'r') as entrada, open(arquivo_saida, 'w') as saida:
        for linha in entrada:
            cpf = linha.strip()
            resultado = f"{cpf}: {'VÁLIDO' if valida_cpf(cpf) else 'INVÁLIDO'}"
            saida.write(resultado + '\n')
            print(resultado)

if __name__ == "__main__":
    import sys
    if len(sys.argv) != 3:
        print("Uso: python valida_cpf.py entrada.txt saida.txt")
    else:
        valida_arquivo(sys.argv[1], sys.argv[2])

Executando o script

Crie um arquivo de texto chamado cpfs.txt com uma lista de CPFs, um por linha. Execute o script no terminal ou prompt de comando:

python valida_cpf.py cpfs.txt resultados.txt

Exemplo Prático

CPF de Entrada Resultado Esperado
12345678909 INVÁLIDO
529.982.247-25 VÁLIDO
111.111.111-11 INVÁLIDO
765.998.130-00 VÁLIDO

Conclusão

Com este método, você automatiza a validação de CPFs offline em segundos, eliminando erros manuais e garantindo que apenas números válidos sejam processados no seu sistema.