【发布时间】:2016-09-27 12:47:25
【问题描述】:
理想情况下,它应该像一个我想要执行的命令列表,并使用单个子进程调用来执行所有这些命令。我可以通过将所有命令存储为 shell 脚本并使用子进程调用该脚本来做类似的事情,但我想要一个纯 python 解决方案。我将使用 shell=True 执行命令,是的,我了解风险。
【问题讨论】:
-
您能否提供一个典型示例来说明您希望执行的命令类型?
-
您可以使用
&/;/&&将命令链接在一起吗?为什么要调用单个子流程 - 为什么不使用循环来提供更多控制权,例如提前终止? -
使用
;将它们按顺序排列:subprocess.call("do_A ; do_B ; do_C ; ", shell=True)。以编程方式:call(' ; '.join(commands), shell=True) -
任何典型的shell命令都可以,比如ls可能,我不需要使用一个命令输出作为下一个输入,所有命令都是独立的。
-
另一种选择:只需启动一个 shell 并将命令作为输入发送:
p = call("bash", stdin=PIPE); p.communicate("\n".join(commands))。
标签: python subprocess