是否有可能将python pickle对象作为字符串存储在类中?
我想对我的(python)程序的一个特性进行一些测试,这个测试的计算量非常大。我可以运行代码,将输出存储在pandas.DataFrame
中,腌制df
并与我的软件包一起分发,以便用户可以运行测试。但我认为这与单元测试的原则背道而驰,即测试应独立于外部来源和自我包含。是否有可能将python pickle对象作为字符串存储在类中?
另一种想法是如果我将pickle文件作为字符串存储在可导入的python类中,然后动态编写pickle文件并在测试后清理它。这有可能做到,如果有,我该怎么做?
下面是一小段代码,它简单地在当前工作目录中写入df
到pickle.pickle
。
import pickle
import os
import pandas
df = pandas.DataFrame([1,2,3,4,5,6])
filename = os.path.join(os.getcwd(), 'pickle.pickle')
df.to_pickle(filename)
那么它有可能以某种方式获得酱菜的字符串版本,以便我可以将它存储在类中?
然后有可能以某种方式得到一个字符串版本的 泡菜,以便我可以将它存储在一个类中?
刚刚看过完整的文件:
with open(filename, "rb") as f:
data = f.read()
然后,如果你需要你可以unpicle它loads
unpickled = pickle.loads(data)
为什么不使用'pickle.load'? –
@cᴏʟᴅsᴘᴇᴇᴅ他要求得到的字符串,我只是指出,他也可以从字符串unickle。 – Netwave
关于阅读完整的文件怎么办? – Netwave