flysmog.pages.dev

Como lidar com CPFs com caracteres especiais em script?

CPFs com pontos, traços e barras são comuns em bases de dados, mas muitas vezes precisam ser limpos para processamento ou validação. Este método garante que você remova caracteres especiais de forma rápida e precisa, usando scripts em Python ou fórmulas no Excel.

Pré-requisitos

Removendo caracteres especiais com Python

O Python oferece uma forma simples e eficiente de limpar CPFs usando expressões regulares. O módulo re permite remover todos os caracteres que não sejam dígitos, deixando apenas os números do CPF.

import re

def limpar_cpf(cpf):
    return re.sub(r'[^0-9]', '', cpf)

# Exemplo de uso
cpf_sujo = "123.456.789-09"
cpf_limpo = limpar_cpf(cpf_sujo)
print(cpf_limpo)  # Saída: 12345678909

Removendo caracteres especiais com fórmula no Excel

No Excel, você pode usar a função SUBSTITUIR para remover pontos, traços e barras do CPF. A fórmula abaixo remove todos os caracteres especiais, deixando apenas os números.

=SUBSTITUIR(SUBSTITUIR(SUBSTITUIR(A1; "."; ""); "-"; ""); "/"; "")

Validação de CPF após limpeza

Após remover os caracteres especiais, é importante validar o CPF para garantir que ele seja válido. O algoritmo de validação de CPF no Python é simples e pode ser implementado da seguinte forma:

def validar_cpf(cpf):
    cpf = re.sub(r'[^0-9]', '', cpf)
    if len(cpf) != 11 or cpf == cpf[0] * 11:
        return False
    # Cálculo do primeiro dígito verificador
    soma = sum(int(cpf[i]) * (10 - i) for i in range(9))
    resto = soma * 10 % 11
    if resto == 10:
        resto = 0
    if str(resto) != cpf[9]:
        return False
    # Cálculo do segundo dígito verificador
    soma = sum(int(cpf[i]) * (11 - i) for i in range(10))
    resto = soma * 10 % 11
    if resto == 10:
        resto = 0
    return str(resto) == cpf[10]

# Exemplo de uso
cpf = "123.456.789-09"
if validar_cpf(cpf):
    print("CPF válido")
else:
    print("CPF inválido")

Exemplo Prático

CPF Original CPF Limpo Válido?
123.456.789-09 12345678909 Sim
987.654.321-00 98765432100 Não
111.222.333-44 11122233344 Não

Conclusão

Com este método, você automatiza a tarefa de limpeza e validação de CPFs em segundos, evitando erros manuais e garantindo a integridade dos dados em seus scripts ou planilhas.