ragfica.pages.dev

Como gerar um relatório de CPFs inválidos em uma pasta?

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.

Pré-requisitos

Passo 1: Criar o script de validação

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

Passo 2: Executar o script

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

Exemplo Prático

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

Conclusão

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.