关于pickle.load的问题~!!!!!!~~求助!

l5230606 2017-03-11 04:51:32
我想写一个图书馆管理系统,
第一个显示所有图书的函数。

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....
...全文
714 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanGuo_uu 2017-03-11
  • 打赏
  • 举报
回复
def disp_all_books():############################
 
    #图书显示函数
     
    with open('lib_info.json', 'r') as f:
        read_book_list = pickle.load(f.read())
    print_basic_info()
不是很理解,你改成这种试试看吧。就是改成了f.read()

37,718

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧