Python - 在一个进程中执行多个命令

时间:2015-03-23 13:54:24

标签: python-3.x

我正在尝试使用Python通过一个进程执行多个命令,但它不起作用。当第一个命令完成时,它应该继续下一个,但在这种情况下,它会停止。如果我输入exit,则执行下一个命令。

如何在同一进程中让命令在彼此之后执行。这是一个不好的例子,但是想要让它变得容易。

import subprocess

CMD = "ls -l"
INIT = "sh"

if __name__ == '__main__':  
    p = subprocess.Popen(INIT, shell=True, stdout=subprocess.PIPE)
    p.wait()
    print(p.returncode)
    p = subprocess.call(CMD, shell=True)'

1 个答案:

答案 0 :(得分:0)

在您输入'退出'之前,sh命令尚未完成。在交互式shell中打开。 Windows等效项为cmd,在输入exit时也会退出。要在没有用户输入的情况下运行多个命令,必须运行不需要用户输入的命令。

此外,除非您阅读另一端,否则不应将输出发送到管道。如果管道已满,子进程将挂起,等待它被清空。使用/ dev / null忽略输出。