我可以取消连接用json / pickle创建的多个序列化文件吗?

时间:2014-03-20 17:20:32

标签: python json pickle

我有很多小python生成的pickle转储文件;我想将这些文件连接到一个文件,并希望能够在需要时解除它们的连接。可能吗?

(使用带有pickle的python 2.2 /如果json可以使用python 2.6可以考虑使用json)

1 个答案:

答案 0 :(得分:2)

json通常无法做到这一点,但我相信它应该可以与pickle一起使用。你只需要对转储的每个“记录”使用pickle.load调用。

在这里,我使用python2.7模拟了你的工作流程,一切都结束了OK:

>>> import pickle
>>> with open('foo', 'wb') as p:
...     pickle.dump({1, 2, 3}, p)
... 
>>> with open('bar', 'wb') as p:
...     pickle.dump({4, 5, 6}, p)
... 
>>> import subprocess
>>> p = subprocess.Popen(['cat', 'foo', 'bar'], stdout=subprocess.PIPE)
>>> result = p.communicate(None)
>>> print result
('c__builtin__\nset\np0\n((lp1\nI1\naI2\naI3\natp2\nRp3\n.c__builtin__\nset\np0\n((lp1\nI4\naI5\naI6\natp2\nRp3\n.', None)
>>> import io
>>> stream = io.BytesIO(result[0])
>>> print pickle.load(stream)
set([1, 2, 3])
>>> print pickle.load(stream)
set([4, 5, 6])