私はPythonが初めてで、私の最初のプロジェクトとして、Python2のスクリプトをPython3に変換しようとしています。Python3 pickle serialization with Cmd
スクリプトは、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の誤った 'pickle as pickle 'だと思っています。 – tdelaney