如何通过管道改进IPC?

时间:2013-05-11 23:11:02

标签: python ipc subprocess pipe

通过管道帮助改进此代码 - IPC。我认为使用函数 replace(“\ n”,“\()”)是不安全的,因为字符串 pickle.dumps(数据)可能包含符号“ \()“即可。有什么明智的方法吗?

主要模块:

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

server.py:

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

0 个答案:

没有答案