|
|

楼主 |
发表于 2019-1-18 00:01:46
|
显示全部楼层
本帖最后由 _摆架_回宫、 于 2019-1-18 00:02 编辑
已经解决了temp = g.multenterbox(msg,title,list1,list2) 又赋值了一次
但是现在又出现一个问题,现在基本功能可以了,但是选择NO的时候还是会更新数据。。。
- import easygui as g
- import sys
- import pickle
- import os
- 文件 = 0
- def djyhxx(newlist):
- msg = '''【*真实姓名】为必填\n【*手机号码】为必填\n【E-mail】为必填'''
- title = '账号中心'
- list1 = ['*用户名','*真实姓名','固定电话','*手机号码','*QQ,E-mail']
- list2 = newlist
- temp = g.multenterbox(msg,title,list1,list2)
- dict1 = {temp[0]:temp[1:]}
-
- return temp,dict1
-
-
- def update_file(data_dict):
- data_file = open('data.pkl','wb')
- data_dict.update(dict1) #跟新字典
- pickle.dump(data_dict,data_file) #把字典倒入泡菜缸
- data_file.close() #关闭文件,保存
- def panduan_name(temp,dict1): #判断数据是否重复
- f = open('data.pkl','rb')
- data_dict = pickle.load(f)
- name_key = list(data_dict.keys())
- if temp[0] in name_key: #为什么访问不了全局变量
- msg = '用户信息已存在,是否更新【YES更新/NO查看数据】'
- yes_or_no = g.buttonbox(msg,choices =('YES','No'))
- print (yes_or_no)
- if yes_or_no == 'YES':
- update_file(data_dict)
- if yes_or_no == 'No':
- newlist =list(temp[0]) #有点烦,从列表去的是字符串。。。。又换成列表
- newlist.extend(data_dict.get(temp[0])) #用查到的旧数据扩展newlist
- f.close()
- #newtemp = g.multenterbox(msg,title,list1,newlist) #又弹出以框,显示以前的数据。。。接下来再这个界面又怎么操作呢?
- temp2,dict2 = djyhxx(newlist)
- return data_dict
-
-
-
- else:
- f.close()
- update_file(data_dict)
- return data_dict
-
-
-
- temp,dict1 = djyhxx('')
- if 'data.pkl' in os.listdir():
- print ('有文件')
- panduan_name(temp,dict1)
- else:
-
- data_file = open('data.pkl','wb')
- pickle.dump(dict1,data_file) #
- data_file.close()
- print('初始化了数据')
- panduan_name(temp,dict1)
复制代码 |
|