Subprocess.Popen stdin在新控制台中

时间:2016-09-07 12:35:15

标签: python subprocess stdin

我想在新控制台中执行python子进程。一旦启动,我希望用户能够回答这个新进程在stdin上提出的问题。

我尝试了以下代码:

p = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=cwd, creationflags=subprocess.CREATE_NEW_CONSOLE)
(o, e) = p.communicate()

一旦子进程在stdin上请求输入,就会显示以下错误消息:

  

EOFError:读取行时的EOF

这是实现这个目标的好方法吗?

1 个答案:

答案 0 :(得分:1)

由于我对stdout / stderr重定向并不感兴趣,我试过这种方式:

subprocess.Popen(cmd, cwd=cwd, creationflags=subprocess.CREATE_NEW_CONSOLE)

现在工作正常。我想这与重定向标准输入/输出和创建新控制台不兼容。