使用子进程获取返回值

时间:2012-01-27 22:52:40

标签: python subprocess

我希望能够通过脚本的返回值来定义变量。这就是我目前所拥有的:

sum_total_earnings_usd = subprocess.call([SCRIPT, "-d", date])

我已经检查了SCRIPT的返回值,但是,当我尝试设置此变量时,它总是返回0(http://docs.python.org/library/subprocess.html#subprocess.call)。我如何运行此脚本并捕获返回值以存储为变量?

3 个答案:

答案 0 :(得分:23)

答案 1 :(得分:6)

如果您的脚本正在返回该值,那么您可能希望使用subprocess.check_output()

subprocess.check_output([SCRIPT, "-d", date], shell=True).

subprocess.check_call()从脚本中获取最终返回值,0通常表示"脚本成功完成"。

答案 2 :(得分:3)

subprocess.call已经返回进程返回值。如果您总是收到0,那么您需要查看SCRIPT以确保它返回您期望的值。

要仔细检查,您还可以在shell中执行SCRIPT并使用$?获取返回代码。