在python中序列化长号

Fin*_*ist -1 python

什么是在python中序列化长号的最佳方法?

我在想泡菜,但它还在回归"缩短版".我显然要写所有的数字..

longNum = math.pow(2,1000)


f = open("file", "w")
pickle.dump(str(longNum), f)
f.close()

f = open("file","r")
longNum = pickle.load(f)
f.close()

print longNum
Run Code Online (Sandbox Code Playgroud)

1.07150860719e + 301

iro*_*hon 7

如果启动解释器,您可以快速查看问题.

>>> math.pow(2,1000)
1.0715086071862673e+301

>>> 2**1000
10715086071862673209484250490600018105614048117055336074437503883703510511249361224931983788156958581275946729175531468251871452856923140435984577574698574803934567774824230985421074605062371141877954182153046474983581941267398767559165543946077062914571196477686542167660429831652624386837205668069376L
Run Code Online (Sandbox Code Playgroud)

math.pow返回一个浮点数,根据定义,它不会保留"所有数字".通过使用长整数运算符**,您的结果很长,这正是您要寻找的.