Subprocess.Popen 新控制台中的标准输入
Subprocess.Popen stdin in new console
我想在新控制台中执行 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()
一旦子进程要求输入标准输入,就会显示以下错误消息:
EOFError: EOF when reading a line
这是实现此目标的好方法吗?
因为我对 stdout/stderr 重定向并不感兴趣,所以我尝试了这种方式:
subprocess.Popen(cmd, cwd=cwd, creationflags=subprocess.CREATE_NEW_CONSOLE)
现在可以正常使用了。我猜重定向标准 input/outputs 和创建新控制台不兼容。
我想在新控制台中执行 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()
一旦子进程要求输入标准输入,就会显示以下错误消息:
EOFError: EOF when reading a line
这是实现此目标的好方法吗?
因为我对 stdout/stderr 重定向并不感兴趣,所以我尝试了这种方式:
subprocess.Popen(cmd, cwd=cwd, creationflags=subprocess.CREATE_NEW_CONSOLE)
现在可以正常使用了。我猜重定向标准 input/outputs 和创建新控制台不兼容。