Python:如何窥视pty对象以避免阻塞?
发布时间:2020-12-16 22:00:55 所属栏目:Python 来源:网络整理
导读:我正在使用pty来读取非阻塞这样的进程的stdout: import osimport ptyimport subprocessmaster,slave = pty.openpty()p = subprocess.Popen(cmd,stdout = slave)stdout = os.fdopen(master)while True: if p.poll() != None: break print stdout.readline()
我正在使用pty来读取非阻塞这样的进程的stdout:
除了while循环偶尔阻塞外,一切正常.这是因为行打印stdout.readline()正在等待从stdout读取的内容.但如果该程序已经终止,我的小脚本将永远挂起. 我的问题是:有没有办法窥视stdout对象并检查是否有可读取的数据?如果不是这种情况,它应该继续通过while循环,它将发现该进程实际上已经终止并打破了循环. 最佳答案
是的,使用select module’s poll:
并在使用时:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |