CEP - Código de Endereçamento Postal

Introdução

O CEP - Código de Endereçamento Postal, foi criado em maio de 1971 pela Empresa Brasileira de Correios e Telégrafos. Inicialmente era formado por 5 dígitos e cerca de 20 anos depois, em maio de 1992, sua estrutura foi alterada para 8 dígitos, a mesma dos dias atuais.

O mesmo tem por objetivo otimizar a distribuição das encomendas entregues pelos Correios. Com tal endereçamento, torna-se possível uma melhor filtragem das remessas por parte da empresazada junto ao público em geral, com a publicação do Guia Postal Brasileiro, Edição 1992.
.

Estrutura

O CEP está configurando segundo o sistema decimal, sendo composto por: região, sub-região, setor, sub-setor, divisor de subsetor e identificadores de distribuição. Abaixo será apresentado graficamente a conceituação anterior:
Figura 1. Estrutura do CEP

O Brasil foi dividido em 10 regiões postais de acordo com parâmetros sócio-econômicos e fatos de densidade demográfica de cada região ou conjunto delas. A distribuição ocorre em sentido anti-horário a partir do estado de São Paulo que recebe o primeiro dígito.

Cada região está dividida em 10 sub-regiões e as sub-regiões em outros 10 setores. Tal esquema funciona até o divisor de subsetor, cada grupo é subdividido em 10 subgrupos, restando apenas os três últimos dígitos para identificação de distribuição, conhecido como SUFIXO. Os sufixos se classificam da seguinte forma:
Localidades não codificadas por logradouros (possuem um único CEP):
  • Faixa de Sufixos utilizada: 000 a 999
  • Caixas Postais Comunitárias: 990 a 998
Localidades codificadas por logradouros:
  • Logradouros: Faixa de Sufixos utilizada: 000 a 899
  • Códigos Especiais: Faixa de Sufixos utilizada: 900 a 959
  • CEPs Promocionais: Faixa de Sufixos utilizada: 960 a 969
  • Unidades dos Correios: Faixa de Sufixos utilizada: 970 a 989 e 999.
  • Caixas Postais Comunitárias: Faixa de Sufixos utilizada: 990 a 998
Implentação

Abaixo segue um código feito em Python, que leva em conta um arquivo texto onde contém todos os CEP's existentes no país para sua respectiva validação.
#!/usr/bin/env python

# ZIP CODE
# AUTHOR: Jose Mauro da Silva Sandy - http://informacaocomdiversao.blogspot.com
#
# CONTACT: jmsandy _at_ gmail _dot_ com
#
# DATE: 2008-12-08
#
# More information about ZIP CODE, visit:
# http://www.correios.com.br/servicos/cep/cep_estrutura.cfm
################################################################################

import easygui

def verify_zip(zip_code):
""" Receiving one zip-code for validate.
   Return one list with adress of zip-code or -1, otherwise.

"""

# Opening the file responsible to save information the CEP
file_cep = open(r'/home/jmsandy/Desktop/cep.txt', 'r')

# Receive and format the zip-code for validation
find_cep = '"' + str(zip_code) + '"'
lines = file_cep.readlines()

# Receiving the line to line the file
for line in lines:
 line_dic = line.split(',')

 # Comparing the zip-code
 if(line_dic[2] == find_cep):
   file_cep.close()

   return line_dic

else:
 file_cep.close()

 return "-1"

# Verifying if the module is been executed like principal code or module
if("__main__" == __name__):
zip_chosen = easygui.integerbox(msg="Enter the Zip-Code(Only Digits)", \
title="ZIP-CODE",default="", argLowerBound=0, argUpperBound=99999999)

# Verify if the desire's user is validate zip-code
if(zip_chosen):
 adress = verify_zip(zip_chosen)

 if(adress!="-1"):
   answer = 'RUA:    ', adress[5].replace('"',''), '\n', 'BAIRRO: ', \
   adress[1].replace('"',''), '\n', 'CIDADE: ', adress[3].replace('"',''),\
   '-', adress[9].replace('"','')

   easygui.codebox(msg="Information", title="Adress", text=answer)

 else:
   easygui.msgbox("Zip code invalid.")

José Mauro da Silva Sandy

Leitura Recomendada

Leia Também

16 comentários:

  Lopes

8 de dezembro de 2008 às 19:15

Juro que ia testar o programa, mas quando fui baixar o arquivo zipado e vi ele tem quase 10MB, desanimei... xD

Será que não há um esquema para o CEP semelhante àqueles que eu te mostrei para o Código Internacional de Doenças?! Ficaria mais fácil criar uma aplicação assim usando BD...

[]!

  José Mauro

8 de dezembro de 2008 às 19:57

Depois te passo o arquivo pra vc testar, funciona direitim eu garanto.

Kra basta importar o arquivo para uma tabela de BD, vou fazer isso e depois de passo ele em formado de tabela.

Abraço

  Iure

29 de dezembro de 2008 às 12:32

Esse Txt não tem todas as cidades não

  José Mauro

29 de dezembro de 2008 às 12:54

Boa tarde, Lure!!!

Este arquivo consegui em uma das centrais dos correios e já vi muitas aplicações em cima dele.

Não posso de precisar sobre a totalidade das cidades, mas até hoje não deixei de encontrar nenhuma.

Qual cidade você estaria precisando?

Porque pode ser algo relacionado a caixa postal.

Ve ai e me fala.

Abraço.

  Anônimo

9 de fevereiro de 2009 às 16:39

Muito bom este programa, parabéns, mas eu estive procurando a cidade Agua Boa (MG) e não encontrei, há alguns cep's que também não existe. Você poderia informar onde conseguiu o arquivo txt e de quando ele é? Att.

  José Mauro

10 de fevereiro de 2009 às 00:06

Oi Amandia!

Td bem?

Olha este arquivo é de meados do ano passado. Conseguir o mesmo com um amigo que trabalhava nas agências dos correios. Ele contém os arquivos separados por rua, CEP geral da cidade geralmente não são encontrados. Por exemplo, a minha cidade era 36200-000 e também não consigo achá-la. Agora qualquer CEP de rua da cidade eu encontro o arquivo na sua totalidade não traz CEP's genéricos.

Abraço e obrigado pelo comentário.

  Anônimo

10 de fevereiro de 2009 às 09:47

Maurim, obrigada pela atenção e pelo sistema... Valeu por disponibilizar... []'s

  Sergio A.

13 de julho de 2009 às 13:39

Maurin, boa tarde;

Tentei baixar o arquivo, mas o link não existe mais. Voce pode republicar ?

Obrigado.

  José Mauro

13 de julho de 2009 às 13:52

Sergio,

Boa tarde!

Posso sim é claro.

Não poderei colocar agora porque estou no trabalho e não tenho o arquivo aqui para poder subir.

Assim que chegar em casa do trabalho posto com o link corrigido.

Só peço o favor de esperar até a noite.

Abraço.

  Sergio A.

13 de julho de 2009 às 14:07

Muito obrigado.

  José Mauro

13 de julho de 2009 às 21:53

Sérgio,

Link corrigido, basta pegar o arquivo para suas necessidades.

Abraço.

  Sergio A.

14 de julho de 2009 às 11:54

Maurim;

Mais uma vez muito obrigado. Voce me ajudou muito.

  Unknown

19 de agosto de 2009 às 14:10

o maurim ou alguem, consegue me arrumar o mapa do municipio de sao paulo dividido por ceps?
fico grato a quem me conseguir.
Emerson

  José Mauro

19 de agosto de 2009 às 15:49

Emerson, blza?

Kra isso e meio difícil viu. Acredito que a não ser que alguém tenha e possa disponibilizar(bem improvável), a única forma será pedido aos correios mesmo. Existem pacotes que eles disponibilizam que o preço é bem acessível.

Infelizmente não posso te ajudar nessa.

Abraço.

  Anônimo

10 de janeiro de 2014 às 12:37

Boa Tarde !!!


Há possibilidade de se montar um scrip apenas com números de CEP da região da Zona Leste de São Paulo??

Faço faculdade de urbanismo e estou fazendo um trabalho sobre o mapeamento nesta região.

se possível, também aguardo retorno no seguinte email: diego@liderancacobrancas.com.br


Muito obrigado.

  Sergio A.

14 de janeiro de 2014 às 13:49

Boa tarde Anonimo!

Os CEPs da Zona Leste começam com 03
em Sao paulo (cidade de São Paulo) é esta a distribuição:

Centro: de 01001 a 01548
Norte: de 02001 a 02998
Leste: de 03001 a 03989
Sul: de 04001 a 04967
Oeste: de 5001 a 05985