鱼C论坛

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

泡菜吗模块中的load读取数据问题

[复制链接]
发表于 2020-2-5 15:58:44 | 显示全部楼层 |阅读模式

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

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

x
  1. # 导入泡菜模块
  2. import pickle
  3. s = 'hello world 123,4156'

  4. # 写入数据
  5. [color=Red]file = open('123.pkl','ab')[/color]
  6. pickle.dump(s,file)
  7. # 关闭文件
  8. file.close()

  9. # 读取数据
  10. file = open('123.pkl','rb')
  11. du = pickle.load(file)
  12. # 打印数据
  13. print(du)
  14. # 关闭文件
  15. file.close()
复制代码


问:pickle这个模块使用a的模式写入数据后,使用load函数读取的时候为什么只能读取第一次写入的数据,后面的读取不了???
(运行了一次就写入一次,运行多次就追加了新的数据)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-2-5 16:01:08 | 显示全部楼层
大佬们,,load只能读取第一次运行时添加的数据,后面新加入的数据却无法读取了,这是什么原因呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-5 16:21:42 | 显示全部楼层
我这块没毛病啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-5 16:22:32 | 显示全部楼层
同求......
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-5 16:22:39 | 显示全部楼层
哦哦哦,看懂你的问题了
我看下哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-5 16:24:56 | 显示全部楼层
你把du的内容导入到一个文件里
  1. # 导入泡菜模块
  2. import pickle
  3. # import os
  4. # os.chdir("C:\\Users\\Administrator\\Desktop")
  5. # 这两行代码是我为了方便写的,用于切换工作目录
  6. s = 'hello world 123,4156'

  7. # 写入数据
  8. file = open('123.pkl','ab')
  9. pickle.dump(s,file)
  10. # 关闭文件
  11. file.close()

  12. # 读取数据
  13. file = open('123.pkl','rb')
  14. du = pickle.load(file)
  15. # 打印数据
  16. with open("record.txt", "a") as f:
  17.     f.write(du)
  18. # 关闭文件
  19. file.close()

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-5 16:57:41 | 显示全部楼层
本帖最后由 hrp 于 2020-2-5 17:11 编辑

dump load 有个特性,你分次写进去的数据,他也是分次读出来的,所以,要读取追加进去的数据,就多load几次就好了
比如下面的代码:你运行第一次代码,会有hello world 123,4156---0、hello world 123,4156---1、hello world 123,4156---2三行被读出来,运行第二次,会有2个---0---1---2(6行)被读出来(因为运行第二次是在第一次的基础上追加的)
  1. # 导入泡菜模块
  2. import pickle
  3. s = 'hello world 123,4156'

  4. # 写入数据
  5. file = open('123.pkl','ab')
  6. for i in range(3):
  7.     pickle.dump(s + f'---{i}',file)
  8. # 关闭文件
  9. file.close()

  10. # 读取数据
  11. file = open('123.pkl','rb')

  12. while True:
  13.     try:
  14.         du = pickle.load(file)
  15.         # 打印数据
  16.         print(du)
  17.     except:
  18.         break

  19. # 关闭文件
  20. file.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-22 04:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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