5

我用python在shell中执行了一些命令。我需要在 shell 中显示命令响应。但命令将执行 10s 。我需要等待。如何立即显示命令的回声。以下是我的代码

cmd = "commands"
output = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
print(output.stdout.read())     

我需要使用命令的输出。所以我不能使用subprocess.call

4

1 回答 1

3

output.stdout循环读取:

cmd = "commands"
output = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
for line in output.stdout:
    print(line)

编辑:似乎在python2中这在任何情况下仍然不起作用,但这将:

for line in iter(output.stdout.readline, ''):
    print(line)
于 2013-11-12T08:21:59.987 回答