调用外部命令

最简单的用例是使用 subprocess.call 函数。它接受列表作为第一个参数。列表中的第一项应该是你要调用的外部应用程序。列表中的其他项是将传递给该应用程序的参数。

subprocess.call([r'C:\path\to\app.exe', 'arg1', '--flag', 'arg'])

对于 shell 命令,设置 shell=True 并将命令作为字符串而不是列表提供。

subprocess.call('echo "Hello, world"', shell=True)

请注意,上面的两个命令仅返回子进程的 exit status。此外,使用 shell=True 时要注意,因为它提供了安全问题(见这里 )。

如果你希望能够获得子流程的标准输出,则将 subprocess.call 替换为 subprocess.check_output。有关更高级的用法,请参阅此处