查找邮编并匹配

查询邮政编码

问题描述,输入一个编码,判断该编码是否有效,如果有效将该编码与邮编列表文件进行比较。

import re  # 正则模块

# 将邮编文件读如到当前文件下
file = open("youbian.txt","r",encoding="utf-8")
content = file.readlines()
# print(content)
'''
'\ufeff[100000,"北京市"],\n', '[110100,"北京市市辖区"],\n'
     列表中的数据 有些同学可能跟我这边出现一样的情况 就是第一条左边多出一个隐藏字符
     处理情况 可以将这一条单独设置即可
     其他的数据 要是想提取出来列表的话 需要去除掉字符串右端的 ,\n 符号
'''
# 由于第一条的数据会出现\ufeff,所以单独取出来
con_first = [100000,"北京市"]
res = []
# 遍历原列表
for i in range(1, len(content)): # 因为索引0位置数据已定,所以从1开始
	# 先去除数据两端非列表的数据
    temp = content[i].rstrip(",\n")
    # 将字符串temp转换成列表
    data = list(eval(temp))
    res.append(data)
# 将第一个元素添加到
res.append(con_first)
list01 = sorted(res,key=lambda x:x[0])

num_you = input("请输入一个邮编:")

# 书写正则规则
rules = re.compile(r"[1-6][0-9]{5}")
if re.fullmatch(rules,num_you):
    count = 0
    for i in list01:
        count += 1
        if i[0] == int(num_you):
            print("邮政编码:{},城市:{}".format(*i))
            break
    if count == len(list01):
        print("没有此邮政编码!")
    # print(res)
else:
    print("邮编格式错误!")

file.close()

你可能感兴趣的:(案例,python,正则表达式)