Como encontrar cidades com a letra R no Brasil
Quando eu precisava montar um relatório rápido de cidades que começavam com uma letra específica, geralmente R mesmo, gastava horas procurando em listas do IBGE ou do Correios. O problema é que essas tabelas nunca estão no formato que você precisa na hora certa. Acabei criando meu próprio script em Python que busca e filtra diretamente dos dados abertos do governo, e desde então o processo leva menos de dois minutos.
O que são cidades com letra R
O conceito é simples: qualquer município brasileiro cujo nome oficial inicie com a letra R, tanto maiúscula quanto minúscula, dependendo de como você trata a string. Isso inclui capitais e interiores, cidades pequenas e grandes. Só no estado de São Paulo, por exemplo, temos Ribeirão Preto, Registro, Rosana, Rafard. No Rio Grande do Sul, Rolante, Restinga Sêca. O número total varia conforme a fonte, mas gira em torno de duzentas e cinquenta cidades em todo o Brasil.
Como filtrar os dados na prática
O método mais direto é usar os dados abertos do IBGE. Eles disponibilizam uma tabela CSV com todos os municípios, incluindo o campo "nome do município". Você baixa, lê linha por linha e aplica um filtro no início da string. Se quiser evitar problemas de acentuação e maiúsculas, converte tudo para lowercase e remove os acentos antes de checar. Aqui vai o raciocínio: baixe o arquivo CAMUNIS do site do IBGE, carregar em um dataframe pandas, transformar o campo de nome em lowercase, remover acentos com unicodedata, e verificar se o primeiro caractere é igual a r. Simples assim.
Eu já tive um problema chato onde cidades como "Riachão do Dantas" eram confundidas porque o nome oficial em algumas bases vinha com pontuação ou espaços extras. A solução foi fazer strip() em ambos os lados e depois um replace de qualquer pontuação antes de aplicar o filtro. Isso resolveu na hora.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Código funcional
Segue o script completo que eu uso. Ele é leve, roda em qualquer máquina com Python 3.8 ou superior, e não depende de bibliotecas pesadas. import pandas as pd
import unicodedata
url = "https://downloads.ibge.gov.br/downloads_offline/municipios/2024/CAMUNIS_2024_BR.csv"
df = pd.read_csv(url, sep=";", encoding="utf-8")
def limpar(texto):
texto = unicodedata.normalize("NFKD", str(texto)).encode("ASCII", "ignore").decode("ASCII").lower().strip()
return "".join(c for c in texto if c.isalnum() or c.isspace())
df["nome_limpo"] = df["NM_MUNICIPIO"].apply(limpar)
resultado = df[df["nome_limpo"].str.startswith("r")][["CD_MUNICIPIO", "NM_MUNICIPIO", "SG_UF"]]
resultado.to_csv("cidades_com_letra_r.csv", index=False, encoding="utf-8")
print(f"Total encontrado: {len(resultado)} cidades")
O resultado é salvo em CSV pronto para importar em planilhas ou bancos de dados. Leva uns três segundos para rodar, dependendo da sua conexão.
Pegadinhas que ninguém avisa
Uma coisa que muita gente não considera é que o IBGE atualiza a lista de municípios com frequência. Separações de distritos criam novos códigos e nomes, e às vezes o arquivo mais recente já traz cidades que não existiam quando você fez a consulta pela última vez. Se você está construindo um sistema que depende dessa lista, configure uma verificação automática mensal. Perde tempo se confiar na primeira versão que baixar. Outro ponto é a questão da acentuação. Cidades como "Rio Real" ou "Recife" não têm acento na letra R, mas outras como "Ribeirão Preto" têm acento em outra letra. Se você não normalizar corretamente, pode perder entries ou incluir falso positivos. O normalize NFKD resolve, mas apenas se aplicado antes do filtro. Aplicar depois não adianta.
Alternativa sem programar
Se você não quer rodar script nenhum, pode usar o site do IBGE direto. Lá tem uma ferramenta de consulta porUF e letra inicial. O problema é que ela é lenta e não exporta bem. Para uso pontual funciona, mas para construir listas maiores ou integrar com outros dados, o script acima é muito mais rápido.
Lista parcial de exemplo
só pra dar uma ideia do que aparece, temos Ribeirão Preto SP, Recife PE, Redenção PA, Rolim de Moura RO, Rio Branco AC, Rondonópolis MT, Russas CE, Rio Grande RS, Rosana SP, Registro SP, Raposa RR, Rancharia SP, and many more. O arquivo completo tem bem mais que isso, porque cada estado contribui com suas próprias cidades. Se precisar da lista inteira ou de alguma variante com filtro adicional por estado ou população, é só adaptar o script. A lógica é a mesma, basta adicionar um where extra no dataframe.