Verificar manualmente centenas de arquivos em busca de CPFs inválidos é uma tarefa tediosa e propensa a erros. Com um script Python simples, você automatiza todo o processo em segundos, garantindo precisão e economizando tempo valioso.
Primeiro, crie um arquivo chamado valida_cpfs.py com o código abaixo. Este script percorre todos os arquivos de texto na pasta especificada, extrai possíveis CPFs e valida-os usando o algoritmo padrão.
import os
import re
def valida_cpf(cpf):
cpf = ''.join(filter(str.isdigit, cpf))
if len(cpf) != 11 or cpf == cpf[0] * 11:
return False
def calcula_digito(cpf, digito):
soma = sum(int(cpf[i]) * (11 - i) for i in range(digito))
resto = (soma * 10) % 11
return 0 if resto == 10 or resto == 11 else resto
d1 = calcula_digito(cpf, 9)
d2 = calcula_digito(cpf, 10)
return d1 == int(cpf[9]) and d2 == int(cpf[10])
def encontra_cpfs_invalidos(pasta):
padrao = r'\d{3}\.\d{3}\.\d{3}-\d{2}'
invalidos = []
for arquivo in os.listdir(pasta):
if arquivo.endswith('.txt'):
caminho = os.path.join(pasta, arquivo)
with open(caminho, 'r', encoding='utf-8') as f:
texto = f.read()
cpfs = re.findall(padrao, texto)
for cpf in cpfs:
if not valida_cpf(cpf):
invalidos.append((arquivo, cpf))
return invalidos
if __name__ == '__main__':
pasta_alvo = 'arquivos_cpfs'
resultado = encontra_cpfs_invalidos(pasta_alvo)
if resultado:
print('Relatório de CPFs inválidos:')
for arq, cpf in resultado:
print(f'Arquivo: {arq} | CPF inválido: {cpf}')
else:
print('Nenhum CPF inválido encontrado.')
Com o script criado, navegue até a pasta onde ele está localizado e execute o comando abaixo. Substitua pasta_cpfs pelo caminho da sua pasta alvo.
python valida_cpfs.py
Considere a pasta arquivos_cpfs contendo dois arquivos:
| Arquivo | Conteúdo | CPF Inválido Encontrado |
|---|---|---|
| cliente1.txt | CPF: 123.456.789-09 | 123.456.789-09 |
| cliente2.txt | CPF: 111.444.777-35 | 111.444.777-35 |
Com este script, você transforma uma tarefa manual e demorada em um processo automatizado e infalível. Basta executar o comando e o relatório estará pronto em segundos, permitindo que você se concentre em ações corretivas em vez de procurar erros.