使用 Popen() 函数从外部软件调用命令

Calling a command from external software using Popen() function

我正在编写 Python 脚本,我必须从外部软件调用命令。我目前正在使用 Popen() 函数来调用这样的命令。该命令也有一些选项。我想知道如何将这些选项合并到 Popen() 函数中。我现在使用的代码是:

from subprocess import Popen, PIPE
proc = Popen(["halSummarizeMutations", hal_output], stdout=PIPE)
summary_mutation = proc.communicate()[0]

在 Popen() 函数中,我应该为命令的选项输入一个变量。修改后的代码应如下所示:

proc = Popen(["halSummarizeMutations", --option optioninput, hal_output], stdout=PIPE)

代码是否正确或是否有不同的编码方法?提前致谢。

如果你想给外部软件添加一些参数,只需将变量作为字符串添加,这里是"ls -la"的例子,你可以在列表中添加“-la”,你可以添加任何 其他参数给list.Remember参数都是string.

from subprocess import Popen, PIPE
proc = Popen(["ls", '-la'], stdout=PIPE) # if you want more, add after "-la"
print proc.stdout.readlines()

将每个参数作为单独的列表项提供:

from subprocess import check_output

cmd = ["halSummarizeMutations", "--option", "optioninput", hal_output]
summary_mutation = check_output(cmd)

其中 hal_output 是之前定义的字符串变量。