我希望从suprocess.run获得返回数据(而不是返回代码或输出)。我希望获得返回的输出,并将其作为API调用的JSON响应返回。目前,我已经将它设置为如下所示,但这只会给我object_tracker.py打印的内容,而不是它返回的内容。我已经阅读了一些文档,但我仍然不知道如何做到这一点。
res = subprocess.run(['python', './model/yolov4_deepsort/object_tracker.py', '--video', './model/yolov4_deepsort/data/video/test_0.mp4', '--model', 'yolov4', '--dont_show'], capture_output= True)发布于 2022-02-03 03:13:57
您可以按照顺序使用subprocess.check_output直接获得输出。
如果要继续使用subprocess.run函数,则应该提供capture_output=True参数,并使用subprocess.run函数中的.stdout属性。
下面是一个例子。
import subprocess
run = subprocess.run(["ls"], capture_output=True)
print(run.stdout.decode("utf-8"))subprocess.check_output示例
import subprocess
run = subprocess.check_output(["ls"])
print(run.decode())decode函数用于将输出转换为更具可读性的格式,您可以尝试删除解码函数,并了解输出的样子!
https://stackoverflow.com/questions/70965206
复制相似问题