简介:从地址中提取电话号码并转换成符号添加在地址后面,例如12345678900,转换成①②③④⑤⑥⑦⑧⑨00。在此过程中使用python内置的tkinter制作一个简单的图形输入输出框来运行并显示结果。
from tkinter import *
import re
tk = Tk()
tk.title('收件地址修改器')
tk.geometry('650x300') #界面大小设置
# 输入框1
now_nub1 = Label(tk, text='请输入收件地址:')
now_nub1.grid(row=1, column=1, sticky='E')
now_bok1 = Spinbox(tk, values=[], width=70)
now_bok1.grid(row=1, column=2, sticky='NW')
# 输出结果
Output_results = Label(tk, text='输出转换结果:')
Output_results.grid(row=12, column=1, sticky='NW')
result_data_Text = Text(tk, width=60, height=10) # 处理结果展示
result_data_Text.grid(row=14, column=1, rowspan=60, columnspan=20)
def value():
# 输入收件地址
address_phone = now_bok1.get() #提取输入框内容
# 使用正则表达式:限制手机号开头,或者手机号前面为非数字,且手机号结尾或者以非数字结尾
pattern = "(?:^|[^\d])(1\d{10})(?:$|[^\d])"
# 提取输入的地址中所有以1开头的电话号码
phone_list = re.compile(pattern).findall(address_phone)
# 把前面的电话转换成目标结果
phone_dict = {"0": "0", "1": "①", "2": "②", "3": "③", "4": "④", "5": "⑤", "6": "⑥", "7": "⑦", "8": "⑧", "9": "⑨"}
res = []
for i in phone_list[0]:
res.append(phone_dict[i])
new_phone = "".join(res) # 将列表转成字符串
new_address = address_phone + '★派件联系★' + new_phone
result_data_Text.delete(1.0,'end') #清空文本框内容
result_data_Text.insert(1.0, new_address) #在文本框加插入内容
# result_data_Text = Label(tk, text= new_address)
# result_data_Text.grid(row=10, column=2, rowspan=150, columnspan=100)
#点击提交,会进行command命令
AnNiu = Button(tk, text='确定提交', fg='blue', bd=3, width=10, command=value)
AnNiu.grid(row=10, column=2, sticky='NW')
tk.mainloop()
if __name__ == '__main__':
pass