使用pickle为我的游戏创建保存/加载功能的问题(Python)

Posted

技术标签:

【中文标题】使用pickle为我的游戏创建保存/加载功能的问题(Python)【英文标题】:Problems using pickle to create a save/load function for my game (Python) 【发布时间】:2013-12-22 18:40:23 【问题描述】:

我正在尝试使用 pickle 为我的第一个基本游戏创建保存/加载功能,但出现错误。

我的代码是

def load():
    with open('save_game.dat', 'wb') as f:
        player_money,weed = pickle.load

我的回溯是

Traceback (most recent call last):

File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
File "C:\Users\Jake\Pictures\Documents\Blue Coat\Compooting\Weed Game.py", line 23, in load
player_money,weed = pickle.load
TypeError: 'builtin_function_or_method' object is not iterable

我将代码更改为包含 (f),但仍然出现此错误

Traceback (most recent call last):
  File "<string>", line 301, in runcode
  File "<interactive input>", line 1, in <module>
  File "C:\Users\Jake\Pictures\Documents\Blue Coat\Compooting\Weed Game.py", line 23, in load
    player_money,weed = pickle.load(f)
io.UnsupportedOperation: read

【问题讨论】:

pickle.load(f) 缺少括号和参数 啊谢谢,没注意 您正在从文件中读取,将参数更改为rb 而不是wb 好的,谢谢,我从另一个答案中复制了它,所以我不知道这是什么意思 r 表示读取,w 表示写入,b 表示二进制,详见here 【参考方案1】:

查看 Python documentation on file modes -- 在您的代码中,“wb”应改为“rb”。

【讨论】:

以上是关于使用pickle为我的游戏创建保存/加载功能的问题(Python)的主要内容,如果未能解决你的问题,请参考以下文章

在泡菜文件中保存和加载多个对象?

保存和加载对象以及使用pickle

程序关闭后如何保存变量并加载它们? [关闭]

使用 json 保存/加载 textRPG

Python之pickle序列化

如何保存和加载用户创建的游戏对象?