python执行另一个脚本并获取其return的值,从另一个python脚本获取返回信息

导入模块不同于将其作为脚本执行。如果您不信任Python子脚本,则不应该从它运行任何代码。在

使用另一个Python模块中某些代码的常规方法:import another_module

result = another_module.some_function(args)

如果要执行它而不是导入:

^{pr2}$

^{}在Python中很少使用。它可能在调试器、分析器或在工具中运行setup.py,例如pip,easy_install中运行{}。在

如果另一个脚本在不同的进程中执行,则可以使用多个IPC methods。最简单的方法是将管道序列化(Python对象转换为bytestring)输入参数到子进程的stdin中,并将结果从其stdout中读回suggested by @kirelagin:import json

import sys

from subprocess import Popen, PIPE

marshal, unmarshal = json.dumps, json.loads

p = Popen([sys.executable, 'some_script.py'], stdin=PIPE, stdout=PIPE)

result = unmarshal(p.communicate(marshal(args))[0])

其中some_script.py可以是:#!/usr/bin/env python

import json

import sys

args = json.load(sys.stdin) # read input data from stdin

result = [x*x for x in args] # compute result

json.dump(result, sys.stdout) # write result to stdout

你可能感兴趣的:(python执行另一个脚本并获取其return的值,从另一个python脚本获取返回信息)