为什么Popen需要按Enter返回shell

时间:2013-02-08 09:30:09

标签: python popen

我想在我的Python脚本中使用bash执行shell命令,在屏幕上获取实时打印消息。我使用以下行来执行此操作:

subprocess.Popen(my_commands, shell=True, stdout=sys.stdout, stderr=sys.stderr, executable='/bin/bash')

一切看起来很好,期望在shell命令完成后,输入光标仍然是不可见的。我必须按Enter键再次激活shell。那么错误是什么?

1 个答案:

答案 0 :(得分:0)

这是因为你有两个shell shell=True/bin/bash

如果设置shell=False,您将无法在控制台上看到输出。您必须使用PIPE和/或subprocess.communicate()来获取输出(取决于您想要的内容)。