Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我可以取消连接使用json/pickle创建的多个序列化文件吗?_Python_Json_Pickle - Fatal编程技术网

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

Python 我可以取消连接使用json/pickle创建的多个序列化文件吗?,python,json,pickle,Python,Json,Pickle,我有很多小python生成的pickle转储文件;我想将这些文件连接到一个文件,并希望能够在需要时取消连接它们。可能吗 (使用Python 2.2与泡菜/可以考虑JSON与Python 2.6,如果上面的JSON是可能的)这通常不可能用 JSON,但是我相信它应该可以工作在泡菜< /代码>。您只需对每个转储的“记录”使用pickle.load调用 在这里,我用python2.7模拟了您的工作流程,一切正常: >>> import pickle >>> with

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


(使用Python 2.2与泡菜/可以考虑JSON与Python 2.6,如果上面的JSON是可能的)

这通常不可能用<代码> JSON<代码>,但是我相信它应该可以工作在<代码>泡菜< /代码>。您只需对每个转储的“记录”使用

pickle.load
调用

在这里,我用python2.7模拟了您的工作流程,一切正常:

>>> 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])

有什么理由需要使用Python2.2吗?想想它是在十二年前发布的……联合起来了吗?我们能用另一个词吗?分割、分离、分割……没有理由停留在旧版本上,只是因为有人必须进行更改。它将需要回归的变化,因为字典顺序似乎已经改变了;我会试试的