0

我有一个我正在使用 py 2.7 开发的简单游戏,它使用 pickle 来读取和写入保存文件。

我是自学成才,一周前才开始学习。我通常可以在网上找到我的问题的解决方案,但是这个解决方案花费的时间太长了,所以我需要一些帮助。

问题是我有这个尝试/除了

        f = file("VTSave2.pkl", "rb")
        try:
            game = load(f)
            print "Game has been loaded from save 2."
        except IOError:
            pass

在保存阅读的事情中。VTSave2.pkl 当前不存在——我正在使用这个事实来测试 try/except。

虽然我确实得到了相应的错误 [Errno 2],但 IOError 传递器并没有做蹲下。我得到了一个退出程序和一个回溯,而不是“加载取消”。

我犯了什么愚蠢的错误吗?有什么我应该知道的吗?我应该提供更多信息吗?非常感谢您的宝贵时间!

编辑:谢谢!现在可以了。由于有人尝试“纠正”代码的格式,并且在我采用它时最终破坏了我的程序,因此我删除了所有不再与问题相关的代码,以避免引诱错误的清理。谢谢!

正确的工作代码:

    try:
        f = open("VTSave2.pkl", "rb")
        game = load(f)
        print "Game has been loaded from save 2."
    except IOError:
        pass
4

2 回答 2

3

这引发了异常

f = file("VTSave2.pkl", "rb")

你需要在之后移动它try:

如果您仔细阅读回溯,您应该会看到在该行号处引发了异常

旁白:file()已弃用。你应该使用f = open("VTSave2.pkl", "rb").

于 2012-09-24T06:23:52.787 回答
0

print "Load cancelled."else部分不会像你一样被执行if

您可能需要重新考虑它。

于 2012-09-24T06:27:06.903 回答