python 获取 subprocess 中的标准输出流结果

# encoding=UTF-8

import subprocess

class AnomalyResult:
    def GET(self):
        p = subprocess.Popen(['python', 'analysis/xx_analyze.py'], stdout=subprocess.PIPE)
        sub_stdout = p.stdout.read().decode('gbk')
        for i in sub_stdout.split('\n'):
            if i.startswith('##xxx_fail_json:'):
                ps_fail_info = eval(i.strip('##xxx_fail_json: '))
        web.header('Content-Type', 'application/json')
        return json.dumps(ps_fail_info)

“”"
[‘python’, ‘analysis/iv_analyze.py’] # 执行的命令是一个列表, 否则可能会报 FileNotFoundError: [WinError 2] 系统找不到指定的文件
shell 不能设置为True
subprocess.PIPE 把标准输出保存到管道中,可以通过 p.stdout.read() 读取出来。 # pring 等打印的信息会随之返回
目的是脚本 iv_analyze.py 的标准输出中获取分析的返回结果,结果再以 json 数据格式返回
“”"

你可能感兴趣的:(工作,python)