我有很多小python生成的pickle转储文件;我想将这些文件连接到一个文件,并希望能够在需要时解除它们的连接。可能吗?
(使用带有pickle的python 2.2 /如果json可以使用python 2.6可以考虑使用json)
答案 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])