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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值