Validar milhares de CPFs manualmente é uma tarefa exaustiva e propensa a erros. Automatizar esse processo com um script não apenas economiza tempo, mas também garante precisão e consistência nos resultados. Este guia apresenta um método eficaz para simular a carga de validação de CPFs em larga escala.
Primeiro, vamos criar um script Python que valide um CPF utilizando o algoritmo padrão. O script verificará os dígitos verificadores e retornará se o CPF é válido ou não.
def validar_cpf(cpf):
cpf = ''.join(filter(str.isdigit, cpf))
if len(cpf) != 11 or cpf == cpf[0] * 11:
return False
soma = sum(int(digito) * (10 - i) for i, digito in enumerate(cpf[:9]))
resto = soma % 11
digito1 = 0 if resto < 2 else 11 - resto
soma = sum(int(digito) * (11 - i) for i, digito in enumerate(cpf[:10]))
resto = soma % 11
digito2 = 0 if resto < 2 else 11 - resto
return str(digito1) == cpf[9] and str(digito2) == cpf[10]
if __name__ == "__main__":
import sys
cpf = sys.argv[1]
print("Válido" if validar_cpf(cpf) else "Inválido")
Agora, vamos criar um script que leia um arquivo CSV com milhares de CPFs e aplique a função de validação a cada um deles, registrando os resultados em um novo arquivo.
import csv
def validar_cpf(cpf):
cpf = ''.join(filter(str.isdigit, cpf))
if len(cpf) != 11 or cpf == cpf[0] * 11:
return False
soma = sum(int(digito) * (10 - i) for i, digito in enumerate(cpf[:9]))
resto = soma % 11
digito1 = 0 if resto < 2 else 11 - resto
soma = sum(int(digito) * (11 - i) for i, digito in enumerate(cpf[:10]))
resto = soma % 11
digito2 = 0 if resto < 2 else 11 - resto
return str(digito1) == cpf[9] and str(digito2) == cpf[10]
with open('cpfs.csv', 'r') as arquivo_entrada, open('cpfs_validados.csv', 'w', newline='') as arquivo_saida:
leitor = csv.reader(arquivo_entrada)
escritor = csv.writer(arquivo_saida)
escritor.writerow(['CPF', 'Status'])
for linha in leitor:
cpf = linha[0]
status = 'Válido' if validar_cpf(cpf) else 'Inválido'
escritor.writerow([cpf, status])
Com o script pronto, execute-o no terminal para processar o arquivo CSV e gerar o relatório de validação.
python validar_cpfs.py
Veja abaixo um exemplo de como o arquivo de entrada e saída devem ser estruturados:
| CPF (Entrada) | Status (Saída) |
|---|---|
| 12345678909 | Inválido |
| 11144477735 | Válido |
| 22233344456 | Inválido |
| 00000000000 | Inválido |
Com este método, você automatiza a tarefa de validação de milhares de CPFs em segundos, evitando erros manuais e garantindo a integridade dos dados. O script é simples, eficiente e pode ser facilmente adaptado para atender a diferentes necessidades de processamento de dados.