发布于2020-02-25 19:57 阅读(900) 评论(0) 点赞(9) 收藏(4)
我有一个进程,该进程创建了几个子进程,需要用它们在Python 2.5中进行交流。我使用subprocess模块启动进程,将stdin和stdout设置为subprocess.PIPE。到目前为止,一切都很好。
然后在循环中,对每个子过程的stdout流运行select.select(),等待它们告诉我它们已经准备好。然后,我写信给他们的stdin,让他们工作并重复该过程。
目前,我只是使用stdin.write和stdout.readline进行通信。但是,我希望能够在流程之间传递复杂的消息。简单的换行符终止的消息是不够的(除非我大步向前以某种方式转义消息中的新行)。我在想可以为所有消息加上字节长度的前缀,以便使我的消息看起来像这样:
6:foobar
但这使我想到了一个问题:是否已经存在类似的东西?我真的不想在这里重新发明轮子。我想要一个可以告诉我何时有完整消息的库,然后将其交给我。还有许多其他协议可以通过各种方式(TCP,消息队列服务器,HTTP等)来执行此类操作,但是对于我的用例而言,它们都是过大的。在Python的进程之间进行消息传递的正确方法是什么?
您可以使用json
或pickle
对包含消息的数据结构进行编码,然后在另一端使用相同的结构读取消息。
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/233628/c8d5b89651388b97ce26/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!