通过管道帮助改进此代码 - 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))