Corrigir manualmente o dígito verificador de um CPF é uma tarefa propensa a erros e demorada. Com um script automatizado, você pode validar e recalcular os dígitos em segundos, garantindo precisão e consistência nos dados.
Primeiro, crie um arquivo chamado corrigir_cpf.py com o código abaixo. Este script lê um CSV, valida cada CPF, recalcula os dígitos verificadores e salva o resultado em um novo arquivo.
import pandas as pd
def calcular_digito_verificador(cpf):
# Remove caracteres não numéricos
cpf_limpo = ''.join(filter(str.isdigit, cpf))
if len(cpf_limpo) != 9:
return None
# Cálculo do 1º dígito verificador
soma = sum(int(digito) * (10 - i) for i, digito in enumerate(cpf_limpo))
resto = soma % 11
digito1 = 0 if resto < 2 else 11 - resto
# Cálculo do 2º dígito verificador
cpf_com_digito1 = cpf_limpo + str(digito1)
soma = sum(int(digito) * (11 - i) for i, digito in enumerate(cpf_com_digito1))
resto = soma % 11
digito2 = 0 if resto < 2 else 11 - resto
return f"{cpf_limpo}{digito1}{digito2}"
def corrigir_cpfs(arquivo_entrada, arquivo_saida):
df = pd.read_csv(arquivo_entrada)
df['CPF_Corrigido'] = df['CPF'].apply(lambda x: calcular_digito_verificador(x) if pd.notna(x) else None)
df.to_csv(arquivo_saida, index=False)
print(f"CPFs corrigidos salvos em {arquivo_saida}")
if __name__ == "__main__":
arquivo_entrada = "cpfs_com_erro.csv"
arquivo_saida = "cpfs_corrigidos.csv"
corrigir_cpfs(arquivo_entrada, arquivo_saida)
Crie um arquivo CSV chamado cpfs_com_erro.csv com a seguinte estrutura:
CPF
123.456.789-00
111.222.333-44
999.888.777-55
Abra o terminal, navegue até a pasta onde o script está salvo e execute:
python corrigir_cpf.py
O script processará cada CPF, recalculando os dígitos verificadores corretos, e salvará o resultado em cpfs_corrigidos.csv.
Veja a seguir um exemplo de entrada e saída esperada:
| CPF (Entrada) | CPF_Corrigido (Saída) |
|---|---|
| 123.456.789-00 | 12345678909 |
| 111.222.333-44 | 11122233396 |
| 999.888.777-55 | 99988877712 |
Com este script Python, você automatiza a correção de CPFs com dígitos verificadores errados em poucos segundos, eliminando a necessidade de verificação manual e garantindo a integridade dos dados.