1.应用场景
python程序 调用 py脚本 获取 程序所需要的 返回信息
2.调用程序【run.py】
import os
import subprocess
import json
def script_run(cmd):
'''
设置一个进程返回标记
'''
res_mark = '[res_json]'
subp = subprocess.Popen(cmd, encoding='utf-8', stdout=subprocess.PIPE)
out, err = subp.communicate()
res = None
for line in out.splitlines():
if line.startswith((res_mark, )):
res = json.loads(line.replace(res_mark, '', 1))
break
return res
if __name__ == '__main__':
# 脚本调用命令
cmd = 'python ./script.py'
# 调用并返回结果
res = script_run(cmd)
# 打印
print(res)
3.被执行的脚本【script.py】
import os
import subprocess
import json
def script_res(res_content):
'''
返回方法
'''
# 设置一个进程返回标记
res_mark = '[res_json]'
# 通过打印的方式返回
print('{}{}'.format(res_mark, json.dumps(res_content, ensure_ascii=False)))
if __name__ == '__main__':
# 返回信息
res_content = [{'idx': 1, 'source_txt': '电力电缆_额定电压:0.6/1kv;型号:yjlv;芯数:3+2;标称截面:400/185;规格型号:yjlv-3*400+2*185;品牌:南缆'}]
# 返回方法
script_res(res_content)
4.实现效果
执行 run.py 后,run.py 会调用 script.py 并获取 script.py 中被 res_mark 标记的打印信息(如果没有找到标记的打印信息,则会返回None)