鱼C论坛

 找回密码
 立即注册
查看: 1951|回复: 5

[已解决]pickle模块保存文件

[复制链接]
发表于 2018-5-11 11:19:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
字典题目.png


  1. import pickle

  2. func_dict = {1:'查询联系人资料', 2:'插入新的联系人', 3:'删除已有联系人', 4:'退出通讯录程序'}
  3. save_data_dict = dict()
  4. decide_code = int(input('请输入指令:'))

  5. if decide_code == 2:
  6.     input_name = input('请输入联系人姓名:')
  7.     input_tel = input('请输入用户联系电话:')
  8.     save_data_dict[input_name] = input_tel
  9.     file = open('save_dict.pkl', 'ab')
  10.     pickle.dump(save_data_dict, file)
  11.     file.close()
  12. elif decide_code == 1:
  13.     input_name = input('请输入联系人姓名:')
  14.     file = open('save_dict.pkl', 'rb')
  15.     save_data_dict1 = pickle.load(file)
  16.     print(save_data_dict1)
  17.     for i in save_data_dict1.keys():
  18.         #print(i)
  19.         print(input_name)
  20.         if input_name == i:
  21.             #print(input_name)
  22.             export_value = save_data_dict1[i]
  23.             print(export_value)
  24.         else:
  25.             print('kkk')
  26.       
复制代码


我新保存的内容会覆盖掉之前保存的,pickle有没有'wb'之外的打开模式啊?就是把信息一致追加保存的模式。
最佳答案
2018-5-11 11:35:29
由于pickle的文件是结构性数据,直接追加是有问题的。建议先读取,再加上新数据,然后重新写入。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-5-11 11:31:36 | 显示全部楼层
模式改为 'ab'试试,应该和pickle无关吧,是open函数的模式设置问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-11 11:35:18 | 显示全部楼层
BngThea 发表于 2018-5-11 11:31
模式改为 'ab'试试,应该和pickle无关吧,是open函数的模式设置问题

好像小甲鱼课程上说的是pickle打开模式只有'wb','ab'试了,但是还是会覆盖呢。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-11 11:35:29 | 显示全部楼层    本楼为最佳答案   
由于pickle的文件是结构性数据,直接追加是有问题的。建议先读取,再加上新数据,然后重新写入。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-5-11 11:46:50 | 显示全部楼层
冬雪雪冬 发表于 2018-5-11 11:35
由于pickle的文件是结构性数据,直接追加是有问题的。建议先读取,再加上新数据,然后重新写入。

学习。
机智的解决方案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-16 20:15:03 | 显示全部楼层
原来这么简单就追加保存了,但是还是思考了好长时间,更进一步理解了pickle模块,thank you

还有字典
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-3 23:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表