【发布时间】:2016-12-26 18:19:14
【问题描述】:
我是 Python 新手,作为我的第一个项目,我正在尝试将 Python2 脚本转换为 Python3。
脚本在尝试使用 pickle 序列化类时失败。
当我试图保存一个使用 Cmd CLI 的类时,它似乎失败了。
此代码使用 Python2 工作。
谁能告诉我脚本出了什么问题以及如何修复它?
import sys
import cmd
try:
import pickle as pickle
except:
import pickle
import os.path
def main():
app = Labyrinth()
turnfile = "turn0.lwot"
app.Save(turnfile)
class CLI(cmd.Cmd):
def __init__(self):
cmd.Cmd.__init__(self)
class Labyrinth(cmd.Cmd):
def __init__(self):
cmd.Cmd.__init__(self)
def Save(self, fname):
with open(fname, 'wb') as f:
pickle.dump(self,f, 2)
f.close()
print ("Save Successful!")
sys.exit()
if __name__ == '__main__':
main()
【问题讨论】:
-
导入泡菜作为泡菜包装在 try/except 中是什么意思?
-
@Turry - 我认为对于 python 2,
import cPickle as pickle输入错误。
标签: python-2.7 python-3.x serialization pickle