Python 使用子流程获取返回值

Python 使用子流程获取返回值,python,subprocess,Python,Subprocess,我希望能够通过脚本的返回值定义变量。这就是我目前拥有的: sum_total_earnings_usd = subprocess.call([SCRIPT, "-d", date]) 我已经检查了脚本的返回值,但是,当我尝试设置这个变量时,它总是返回0()。如何运行此脚本并捕获返回值以存储为变量?使用而不是。子流程。call已返回流程返回值。如果总是得到0,则需要查看SCRIPT,以确保它返回您期望的值 要进行双重检查,您还可以在shell中执行脚本,并使用$?获取返回代码。如果脚本正在返回值

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

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

我已经检查了脚本的返回值,但是,当我尝试设置这个变量时,它总是返回0()。如何运行此脚本并捕获返回值以存储为变量?

使用而不是。

子流程。call
已返回流程返回值。如果总是得到
0
,则需要查看
SCRIPT
,以确保它返回您期望的值

要进行双重检查,您还可以在shell中执行
脚本
,并使用
$?
获取返回代码。

如果脚本正在返回值,则需要使用:


subprocess.check_call()
获取脚本的最终返回值,0通常表示“脚本已成功完成”。

谢谢<代码>子流程。check_output()是运行命令并返回返回值的程序。如果希望输出,请将值写入标准输出,然后使用
check_output()
获取值。否则,jcollado正确地认为已经返回了进程退出状态。返回值为零,因为按照约定,零表示脚本成功运行并且没有错误。程序的输出是它打印到stdout(或者可能是stderr)的内容,获得这个值是通过重定向实现的,就像使用标准unix管道一样。
subprocess.check_output([SCRIPT, "-d", date], shell=True).