#__author:"lingdian"
#date:
#打开文件
with open('菜单', 'r', encoding='utf-8') as f_read:
menu = f_read.read() #读取文件内容
dic_menu = eval(menu) #字符转换字典
menu_list = [] #存放返回的父级
while True:
#显示内容
print(' 欢迎使用三级菜单查询系统 '.center(50, '*'))
for i in dic_menu:
print('>>>', i)
#用户选择
choice = input('请输入查询的内容,[返回&退出:b][增加:z][删除:s][修改:x]>>>')
if len(choice) == 0: continue #如果不输入就跳过本次循环
if choice in dic_menu: #如果用户输入的字符在字典里面就执行
menu_list.append(dic_menu) #存放本次字典的键(存储父级用于返回)
dic_menu = dic_menu[choice] #通过键取值,进入下一层字典
#返回&退出
elif choice == 'b':
if menu_list: #如果列表不为空就执行
dic_menu = menu_list.pop() #删除列表最后一个元素并返回值,返回上一层
else: #如果列表为空执行
q = input('没有上一层了,你要退出吗?[y/n]')
if q == 'y':
break
else:
continue
#增加
elif choice == 'z':
choice_z = input('请输入增加的内容>>>')
dic_menu[choice_z] = {} #添加键值(字典)
#删除
elif choice == 's':
choice_s = input('请输入想删除的内容>>>')
del dic_menu[choice_s]
#修改
elif choice == 'x':
choice_x = input('请输入你想修改的内容>>>')
choice_x1 = input('现在输入新的内容>>>')
del dic_menu[choice_x]
dic_menu[choice_x1] = {}
else:
print('没有这个选择!')
#保存
str_dic_menu = str(dic_menu) #字典转字符串
with open('菜单', 'w', encoding='utf-8') as f_write:
f_write.write(str_dic_menu) #写入文件
菜单内容:
{'广西': {'南宁': {'隆安县': '', '马山县': ''}, '柳州': {'柳城县': '', '鹿寨县': ''}}, '广东': {'广州': {'荔湾区': '', '越秀区': ''}, '深圳': {'罗湖区': '', '福田区': ''}}, '上海': {'1': {}}}
结果: