鱼C论坛

 找回密码
 立即注册
查看: 3286|回复: 6

[已解决]永久存储的数据查询

[复制链接]
发表于 2017-4-4 16:07:21 | 显示全部楼层 |阅读模式
11鱼币
大佬们好,现在想设计一个问卷,然后把这个问卷得到的结果永久保存,我使用pickle为何没有成功?代码如下:
  1. import pickle
  2. user_info = {}
  3. def ques():
  4.     key = input('你叫什麽名字?\n')
  5.     value = input('你的星座是什麽?\n')
  6.     user_info[key] = value
  7.     print('感謝參與')

  8. def save_ques():
  9.     with open('user_file.txt','wb') as uf:
  10.         pickle.dump(user_info,uf)
  11.     uf.close()

  12. def show_ques():
  13.     for keys,values in user_info.items():
  14.         print('被調查者姓名是:\t'+keys)
  15.         print('被調查者星座是:\t'+values)
  16.    
  17. user_choice = input('選擇問卷請按1,查看問卷請按2:')
  18. if user_choice == '1':
  19.     ques()
  20.     save_ques()
  21. elif user_choice == '2':
  22.     show_ques()
  23.    
复制代码


功能实现,按1,可以参与调查,按2,可以查看调查的信息,但是我这个却只能显示当次调查结果,关了程序再进入,调查结果又为空了,但是有调查结果的文件明明保存了。如何解決这个问题,是不是在show()這裡應該 做個什麽改變 ,一時想不過去了,懇請大佬指點一二
最佳答案
2017-4-4 16:07:22
文质彬彬胡汉三 发表于 2017-4-4 16:32
感謝大佬!讀取文件的時候,文件裏面的字典可以直接遍歷嗎?万請大佬告知讀取的操作,不勝感激!

在你的程序基础上修改的。
  1. import pickle
  2. user_info = {}
  3. def ques():
  4.     key = input('你叫什麽名字?\n')
  5.     value = input('你的星座是什麽?\n')
  6.     user_info[key] = value
  7.     print('感謝參與')

  8. def save_ques():
  9.     with open('user_file.txt','wb') as uf:
  10.         pickle.dump(user_info,uf)

  11. def load_ques():
  12.     global user_info
  13.     with open('user_file.txt', 'rb') as uf:
  14.         user_info = pickle.load(uf)

  15. def show_ques():
  16.     for keys,values in user_info.items():
  17.         print('被調查者姓名是:\t'+keys)
  18.         print('被調查者星座是:\t'+values)
  19.    
  20. user_choice = input('選擇問卷請按1,查看問卷請按2:')
  21. if user_choice == '1':
  22.     ques()
  23.     save_ques()
  24. elif user_choice == '2':
  25.     load_ques()
  26.     show_ques()
复制代码

最佳答案

查看完整内容

在你的程序基础上修改的。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-4-4 16:07:22 | 显示全部楼层    本楼为最佳答案   
文质彬彬胡汉三 发表于 2017-4-4 16:32
感謝大佬!讀取文件的時候,文件裏面的字典可以直接遍歷嗎?万請大佬告知讀取的操作,不勝感激!

在你的程序基础上修改的。
  1. import pickle
  2. user_info = {}
  3. def ques():
  4.     key = input('你叫什麽名字?\n')
  5.     value = input('你的星座是什麽?\n')
  6.     user_info[key] = value
  7.     print('感謝參與')

  8. def save_ques():
  9.     with open('user_file.txt','wb') as uf:
  10.         pickle.dump(user_info,uf)

  11. def load_ques():
  12.     global user_info
  13.     with open('user_file.txt', 'rb') as uf:
  14.         user_info = pickle.load(uf)

  15. def show_ques():
  16.     for keys,values in user_info.items():
  17.         print('被調查者姓名是:\t'+keys)
  18.         print('被調查者星座是:\t'+values)
  19.    
  20. user_choice = input('選擇問卷請按1,查看問卷請按2:')
  21. if user_choice == '1':
  22.     ques()
  23.     save_ques()
  24. elif user_choice == '2':
  25.     load_ques()
  26.     show_ques()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-4-4 16:17:11 | 显示全部楼层
你光有存储文件的操作,没有读取文件的操作。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-4-4 16:25:06 | 显示全部楼层
  1. import pickle
  2. user_info = {}
  3. def ques():
  4.     key = input('你叫什麽名字?\n')
  5.     value = input('你的星座是什麽?\n')
  6.     user_info[key] = value
  7.     print('感謝參與')

  8. def save_ques():
  9.     with open('user_file.txt','wb') as uf:
  10.         pickle.dump(user_info,uf)
  11.     uf.close()

  12. def show_ques():
  13.     with open('user_file.txt','r') as f:
  14.         for keys,values in f:
  15.             print('被調查者姓名是:\t'+keys)
  16.             print('被調查者星座是:\t'+values)
  17.    
  18. user_choice = input('選擇問卷請按1,查看問卷請按2:')
  19. if user_choice == '1':
  20.     ques()
  21.     save_ques()
  22. elif user_choice == '2':
  23.     show_ques()
  24.    
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-4-4 16:32:22 | 显示全部楼层
冬雪雪冬 发表于 2017-4-4 16:17
你光有存储文件的操作,没有读取文件的操作。

感謝大佬!讀取文件的時候,文件裏面的字典可以直接遍歷嗎?万請大佬告知讀取的操作,不勝感激!
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-4-4 16:33:27 | 显示全部楼层

感謝大佬,這個方法我也試啦,在直接選擇2查閲會報錯
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-4-4 16:55:41 | 显示全部楼层
冬雪雪冬 发表于 2017-4-4 16:07
在你的程序基础上修改的。

恍然大悟!!!感謝大佬,我把讀取和存儲混到一個方法裏面,怎麽想都分不開。。鑽了牛角尖
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-26 16:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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