|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在使用pickle.load()时遇到了难题,我用pickle.dump()将一个数据存进了文件,但是读取不出来了,而文件里打开显示是已经存上了数据的。
代码如下,其中指令2能写入,但是指令2写入的数据这个函数读取不了,指令1,4正常。有没有大佬告诉我是什么原因导致的啊?
import pickle
def fun1():
print('''
1:查询联系人资料
2:插入新的联系人
3:删除已有联系人
4:退出通讯录
''')
pickle_file =open(r'D:\python\测试资源\联系人.txt','rb+')
t = pickle_file.readlines()
dict_name = pickle.loads(t[0])
dict_name_1=str(dict_name)
print(dict_name_1)
zhiling_daima =int(input('请输入相关的指令代码:'))
while True:
if zhiling_daima ==1:
temp_name = str(input('指令1:请输入名字:'))
if dict_name_1.find(temp_name):
print(dict_name[temp_name])
pickle_file.close()
else:
print('没有找到')
return fun1()
elif zhiling_daima ==2:
temp_name = input('指令2:请输入名字:')
temp_phonenumber = input('指令2:请输入电话号码:')
dict_name[temp_name] = temp_phonenumber
pickle.dump(dict_name,pickle_file)
pickle_file.close()
print(dict_name)
print('联系人已写入')
return fun1()
elif zhiling_daima ==3:
temp_name = input('指令3:请输入名字:')
temp_yes =input('你确定要删除该联系人吗?(是/否)')
if temp_yes =='是':
del dict_name[temp_name]
pickle.dump(dict_name,pickle_file)
pickle_file.close()
print('删除成功')
return fun1()
elif zhiling_daima ==4:
temp_yes =input('指令4:你确定要退出吗?(是/否)')
if temp_yes =='是':
print('感谢使用')
pickle_file.close()
break
else:
print('代码有误')
pickle_file.close()
return fun1()
fun1()
|
|