关于pickle.load的问题~!!!!!!~~求助!
第一个显示所有图书的函数。
def disp_all_books():############################
#图书显示函数
with open('lib_info.json', 'r') as f:
read_book_list = pickle.load(f)
print_basic_info()
for i in range(len(read_book_list)):
read_book_list[i].disp_book_info()第二个是添加图书的函数:
def add_books(book_list):
# 图书添加函数
print '请输入要添加的信息:'
book_number = input('书号:')
book_name = input('书名:')
author = input('作者:')
press = input('出版社:')
pub_date = input('出版日期:')
price = input('定价:')
kind = input('类别:')
book = BookInfo(book_number, book_name, author, press, pub_date, price, kind) #自定义的一个图书类
book_list.append(book)
with open('lib_info.json','w') as f:
#将新书添加进书单
pickle.dump(book_list,f)
print '\n','添加完成'
disp_all_books()我添加了好几本不同的书(先放在了列表book_list里,再dumpji你去的)
而我在pickle.load的时候,返回的列表总是长度为1
我试着不断地load,值到EOFError时,显示的书都是我第一次添加的书,只是重复了很多遍
why....
相关推荐
使用pickle存储数据dump 和 load实例讲解
使用pickle模块来dump你的数据:对上篇博客里的sketch.txt文件: import os import sys import pickle man=[ ] other=[ ] try: data=open('sketch.txt') for each_line in data: try: (role,line_spoken)=each_line.split(':',1) line_spoken=line_spoken.strip() if role == 'Man':
解决python3读取Python2存储的pickle文件问题
今天小编就为大家分享一篇解决python3读取Python2存储的pickle文件问题,具有很好的参考价值。希望对大家有所帮助。一起跟随小编过来看看吧
Python 中Pickle库的使用详解
pickle是python语言的一个标准模块,安装python后已包含pickle库,不需要单独再安装。这篇文章主要介绍了Python 中Pickle库的使用详解,需要的朋友可以参考下
详解Python3 pickle模块用法
pickle(python3.x)和cPickle(python2.x的模块)相当于java的序列化和反序列化操作。 常采用下面的方式使用: import pickle pickle.dump(obj,f) pickle.dumps(obj,f) pickle.load(f) pickle.loads(f) 使用pickle模块你可以把Python对象直接保存到文件,而不需要把他们转化为字符串,也不用底层的文件访问操作把它们写入到一个二进制文件里。 pickle模块会创建一个python语言专用的二进制格式,你基本上不用考虑任何文件细节,它会帮你干净利落地完成读写独享操作,唯一需要的只是一个
python pickle存储、读取大数据量列表、字典数据的方法
pickle模块实现了用于序列化和反序列化python对象结构的二进制协议。这篇文章主要介绍了python pickle存储、读取大数据量列表、字典的数据,需要的朋友可以参考下


