由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - Python有什么好的方法建two-way pipe?
相关主题
PyCharm里的Python启动的Process在等待按键,如何继续菜鸟请教个hadoop streaming job 的问题 (转载)
A question related to pipe编写支持CGI的web服务器大致原理 (转载)
请教一个python下面popen的问题50伪币:请教perl代码差错的问题!多谢啦!
奇怪的问题:关于一个简单的malloc()小程序 (转载)请高人解释一下为啥这个输出总是"HELLO-ERR"
想实现一个简单的script language,用perl好做么?一个 perl 的 print 的初级问题
问一个vc++ 2008的问题node.js multer: Recursive process.nextTick detected
高人帮我看看一个简单的script,为什么nohup有问题? (转载)node.js child process: 怎样保证1个命令执行完了再执行下一个?
how can I get external program's result in C请推荐一个稳定的Python集成环境
相关话题的讨论汇总
话题: fd话题: pipe话题: python话题: self话题: def
进入Programming版参与讨论
1 (共1页)
d*****u
发帖数: 17243
1
程序需要往subprocess里不断输入数据,然后读出数据
python自带的那个communicate()必须等subprocess完成才返回数据,显然很多时候都
不好用
直接用stdin stdout经常会碰到deadlock
w****k
发帖数: 6244
2
two queues?

【在 d*****u 的大作中提到】
: 程序需要往subprocess里不断输入数据,然后读出数据
: python自带的那个communicate()必须等subprocess完成才返回数据,显然很多时候都
: 不好用
: 直接用stdin stdout经常会碰到deadlock

m******1
发帖数: 95
3
mmap 吧,开两个文件当两个单向管道,一出一进。
t*****s
发帖数: 416
4
不能直接用系统的pipe文件么?
d*****u
发帖数: 17243
5
我找到一个相对简单的办法,贴一下。
自己定义一个class,
read和write代替默认的读写方式
class Pipe(subprocess.Popen):
def __init__(self, argv, timeout = 0):
self.timeout = timeout
subprocess.Popen.__init__(self, argv, stdin = subprocess.PIPE,
stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
def write(self, data):
poll = select.poll()
poll.register(self.stdin.fileno(), select.POLLOUT)
fd = poll.poll(self.timeout)
if len(fd):
f = fd[0]
if f[1] > 0:
#self.stdin.write(data)
pickle.dump(data, self.stdin)
def read(self):
poll = select.poll()
poll.register(self.stdout.fileno(), select.POLLIN or select.POLLPRI)
fd = poll.poll(self.timeout)
if len(fd):
f = fd[0]
if f[1] > 0:
#return self.stdout.read()
return pickle.load(self.stdout)
i***r
发帖数: 1035
6
learned something, thanks
1 (共1页)
进入Programming版参与讨论
相关主题
请推荐一个稳定的Python集成环境想实现一个简单的script language,用perl好做么?
Python 中如何调用C的 exe 程序问一个vc++ 2008的问题
怎样读一个不断更新的文件高人帮我看看一个简单的script,为什么nohup有问题? (转载)
linux下面的程序间通信怎么样最快?how can I get external program's result in C
PyCharm里的Python启动的Process在等待按键,如何继续菜鸟请教个hadoop streaming job 的问题 (转载)
A question related to pipe编写支持CGI的web服务器大致原理 (转载)
请教一个python下面popen的问题50伪币:请教perl代码差错的问题!多谢啦!
奇怪的问题:关于一个简单的malloc()小程序 (转载)请高人解释一下为啥这个输出总是"HELLO-ERR"
相关话题的讨论汇总
话题: fd话题: pipe话题: python话题: self话题: def