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.
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
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; "."; ""); "-"; ""); "/"; "")
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")
| 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 |
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.