阅读子进程模块(https://docs.python.org/2/library/subprocess.html) 我不清楚每个单词是否需要单独用引号括起来,还是可以按某种方式分组
例如:
cmd -vvv <positional arg> <keyword arg> <keyword arg>
这是调用子进程的正确方法:
subprocess.call(['command', '-vvv', '<positional arg>', '<keyword arg>', '<keyword arg>'])
subprocess.call(['command', '-vvv', '<positional arg>', '<keyword arg> <keyword arg>'])
subprocess.call(['command', '-vvv', '<positional arg> <keyword arg> <keyword arg>'])
如果正确处理它也是如何捕获的。这是正确的方式:
a = subprocess.call(...from above...)
if a == 0:
success
else:
fail
这似乎不正确,但我看到它回归&#39; 0&#39;当它成功时,就想到了上面的解决方案。
答案 0 :(得分:3)
第一种是正确的方法:
subprocess.call(['command', '-vvv', '<positional arg>', '<keyword arg>', '<keyword arg>'])
更好地使用subprocess.check_call()
而不是自己检查失败:
使用参数运行命令。等待命令完成。如果 退出代码为零然后返回,否则提高 CalledProcessError。 CalledProcessError对象将具有 返回代码返回代码。
如果您还需要流程的输出,请使用subprocess.check_output()
。