如何通过管道改进IPC?

2024-10-03 13:18:06 发布

您现在位置:Python中文网/ 问答频道 /正文

帮助改进这段代码-通过IPC管道。我认为使用functionreplace(“\n”,“\()”)是不安全的,因为string泡菜.垃圾(数据)可能包括符号“\()”。有什么合理的方法吗?你知道吗

主模块:

import subprocess, pickle
data=["A","B","C"]
data = pickle.dumps(data).replace("\n", "\\()")
p=subprocess.Popen(["python", "server.py"],stdin = subprocess.PIPE, stdout= subprocess.PIPE, stderr= subprocess.PIPE)
stdout, stderr = p.communicate(input=data)
print stdout

你知道吗服务器.py地址:

import pickle,sys
s=sys.stdin.readline()
data = pickle.loads(s.replace("\\()", "\n"))
sys.stdout.write(str(data))

Tags: 代码pyimportdata管道stderrstdinstdout