Gerar uma lista de CEPs válidos para um estado inteiro manualmente é uma tarefa trabalhosa e propensa a erros. Com um script automatizado, você pode validar e filtrar milhares de CEPs em segundos, garantindo que apenas os códigos corretos sejam utilizados em suas operações logísticas ou análises de dados.
Primeiro, crie um ambiente virtual e instale as bibliotecas necessárias para validação de CEPs e manipulação de arquivos CSV.
python -m venv cep_env
source cep_env/bin/activate # No Windows: cep_env\Scripts\activate
pip install pandas
pip install validate-docbr
Crie um arquivo chamado validar_cep.py e insira o código abaixo. Este script lê um CSV, valida os CEPs e salva apenas os válidos em um novo arquivo.
import pandas as pd
from validate_docbr import CEP
def validar_cep(cep):
cep = str(cep).strip()
return CEP().validate(cep)
def processar_csv(arquivo_entrada, arquivo_saida):
df = pd.read_csv(arquivo_entrada)
df['valido'] = df['CEP'].apply(validar_cep)
df_validos = df[df['valido'] == True]
df_validos.to_csv(arquivo_saida, index=False)
print(f"Processamento concluído. {len(df_validos)} CEPs válidos salvos em {arquivo_saida}.")
if __name__ == "__main__":
arquivo_entrada = 'ceps_input.csv'
arquivo_saida = 'ceps_validos.csv'
processar_csv(arquivo_entrada, arquivo_saida)
Crie um arquivo CSV chamado ceps_input.csv com uma coluna chamada "CEP". Exemplo:
CEP
01001000
12345678
70000000
99999999
80000000
No terminal, execute o comando abaixo para processar o arquivo e gerar a lista de CEPs válidos.
python validar_cep.py
Veja abaixo um exemplo de dados de entrada e saída esperada após a execução do script.
| CEP (Entrada) | válido (Saída) |
|---|---|
| 01001000 | True |
| 12345678 | False |
| 70000000 | True |
| 99999999 | False |
| 80000000 | True |
Com este método, você automatiza a validação de CEPs em lote, eliminando erros manuais e garantindo que apenas códigos postais válidos sejam utilizados em seus processos. A solução é escalável e pode ser adaptada para diferentes formatos de entrada ou regras de negócio específicas.