为什么Popen需要按回车才能返回shell
我想在我的Python脚本中用bash执行一些命令,并且希望能实时看到输出信息。我用下面这行代码来实现:
subprocess.Popen(my_commands, shell=True, stdout=sys.stdout, stderr=sys.stderr, executable='/bin/bash')
一切看起来都不错,但在shell命令执行完后,输入光标还是看不见。我必须按一下回车键才能让shell重新激活。那么这是哪里出错了呢?
相关问题:
1 个回答
0
这是因为你使用了两个命令行环境,一个是 shell=True,另一个是 /bin/bash。
如果你把 shell 设置为 False,那么你在控制台上就看不到输出了。你需要使用 PIPE 和/或 subprocess.communicate() 来获取输出,这取决于你想要什么。