带有stdin和stdout的子进程Popen总是挂断

2024-09-27 04:28:17 发布

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

我需要与一个用命令行启动的flash进程进行通信。 不幸的是,如果出现错误,闪光器程序需要一个“回车”键

我已经安装了python3.7.2并将subprocess与PyCharm一起使用。我可以用popen启动进程,但是stdout似乎是空的,即使使用bufsize = 01,甚至使用flush命令:p.stdout.flush():以下是代码:

import subprocess

proc = subprocess.Popen(stringCall, stdout=subprocess.PIPE, stdin=subprocess.PIPE, bufsize=0, universal_newlines=True)

time.sleep(2)
proc.stdout.flush()

……这个程序永远挂起:

for line in proc.stdout:
    print(line) 

我找到了很多解决这个问题的例子,但没有一个对我有用。当我使用3.7.2时,也许它是针对Python2.x的。。。 当proc.stdout容器被填满时,或者示例代码能够运行时,我预期会有一些反应


Tags: 代码命令行程序进程错误stdoutlineproc

热门问题