擅长:python、mysql、java
<p>@user4815162342给出了正确答案。为了清楚地说明这一点,下面的示例代码演示了如何检索pickled对象。在</p>
<p>注意,将<code>dump</code>和<code>loads</code>配对有点不寻常,但这就是<code>p.communicate</code>从stdout返回字符串时需要做的事情。在</p>
<pre><code>>>> import pickle
>>> import subprocess as sp
>>> cmd = ['python', 'sendPickle.py']
>>> p = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.PIPE)
>>> stdout, stderr = p.communicate()
>>> stdout
"(dp0\nS'a'\np1\nI1\nsS'b'\np2\nI2\ns."
>>> results = pickle.loads(stdout)
>>> results
{'a': 1, 'b': 2}
</code></pre>