gpt4 book ai didi

python - 如何通过 subprocess.Popen 接收 pickle

转载 作者:行者123 更新时间:2023-11-28 16:28:48 24 4
gpt4 key购买 nike

getPickle.py

import pickle
import subprocess

cmd = ['rsh', 'host1', 'sendPickle.py']
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate()
results = pickle.load(stdout)
print results

发送Pickle.py

import pickle
import sys

to_return = {'a':1, 'b': 2}
pickle.dump(to_return, sys.stdout)

输出:

File "getPickle" line 10, in <module>
results = pickle.load(stdout)
AttributeError: 'str' object has no attribute 'readline'

我该怎么做才能从 stdout 返回 pickle?

谢谢

最佳答案

使用 pickle.loads 从字符串加载 pickle。 pickle.load 用于从流中加载。

两个不相关的评论:

  • 如果您使用的是 Python 2,您可能想要将 cPickle 导入为 pickle,因为 C 版本要快很多倍而且同样强大。

  • 除非您特别想支持旧的 Python 版本,否则最好在转储端使用 protocol=-1 以指定最新的 Pickle 协议(protocol),这样效率更高比默认的最低/最旧版本。

关于python - 如何通过 subprocess.Popen 接收 pickle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34181033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com