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.
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.
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'.")
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
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.
| 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 |
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.