我正在写一个Go程序。从这个Go程序中,我想调用另一个文件中定义的Python函数并接收该函数的返回值,以便在Go程序的后续处理中使用它。不过,我很难在Go程序中获取任何返回的数据。下面是一个我认为可行但显然不行的最低限度的例子:

gofile.gopackage main

import "os/exec"

import "fmt"

func main() {

fmt.Println("here we go...")

program := "python"

arg0 := "-c"

arg1 := fmt.Sprintf("'import pythonfile; print pythonfile.cat_strings(\"%s\", \"%s\")'", "foo", "bar")

cmd := exec.Command(program, arg0, arg1)

fmt.Println("command args:", cmd.Args)

out, err := cmd.CombinedOutput()

if err != nil {

fmt.Println("Concatenation failed with error:", err.Error())

return

}

fmt.Println("concatentation length: ", len(out))

fmt.Println("concatenation: ", string(out))

fmt.Println("...done")

}

Python鱼.pydef cat_strings(a, b):

return a + b

如果我调用go run gofile,将得到以下输出:here we go...

command args: [python -c 'import pythonfile; print pythonfile.cat_strings("foo", "bar")']

concatentation length: 0

concatenation:

...done

一些注意事项:我在Python调用中使用了-c标志,因此可以直接调用函数cat_strings。假设cat_strings是一个Python文件的一部分,其中包含了其他Python程序使用的实用函数,因此我没有任何if __name__ == __main__业务。

我不想将Python文件修改为print a + b(而不是return a + b);请参见前面关于函数是一组实用函数的一部分的观点,这些实用函数应该可以由其他Python代码调用。

cat_strings函数是虚构的,用于演示;真正的函数是我不想在Go中简单地重新实现的。我对如何从Go调用Python函数并获取返回值非常感兴趣。

python调用go并把结果传回go_从Go调用Python函数并获取函数返回值相关推荐

  1. C++调用python并获取其返回值

    C++调用python并获取其返回值 先上实例代码: C++代码: //初始化py环境 // Py_Initialize();PyRun_SimpleString("import sys&q ...

  2. python获取子进程返回值_Python 从subprocess运行的子进程中实时获取输出的例子 Python如何抓取程序的输出?...

    关于python中用subprocess调用exe子进程的问题不懂我的人有什么资格对我指指点点,不了解我的人凭什么对我说三道四的. python杀死子进程后继续执行后面程序 程序a(python写成) ...

  3. Python 获取线程返回值获取

    Python 获取线程返回值获取 思路 重写run方法,使用线程的get_result()方法获取返回结果 '''示例: 多线程访问百度,统计平均响应时间和错误率''' class MyThread( ...

  4. Python基础day04【函数(定义与调用、文档说明、传参函数、全局变量、返回值、嵌套调用)】

    视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day04[字典]    目录 3.函数 函数的定义和调用 函数定义 PEP8规范 ...

  5. python函数入参和返回值

    以下内容参考自runoob网站,以总结python函数知识点,巩固基础知识,特此鸣谢! 原文地址:http://www.runoob.com/python3/python3-function.html ...

  6. python return返回值在计算机内的存储形式_Python如何执行存储过程,获取存储过程返回值...

    在Pathon中如何执行存储过程呢?可以使用如下方法: 存储过程定义基本如下: ALTER procedure [dbo]. [mysp] @Station varchar ( 50), @SN va ...

  7. python获取接口返回值_Python+request 登录接口reponse的返回值token跨py文件的传递《二》...

    主要使用场景: 一般我们在进行接口测试时,依赖登录接口后reponse中的某些返回值,因此需要将login接口单独写一个py文件,另外的py文件均可调用login的reponse返回值使用.共用登录接 ...

  8. python中result函数用法_python中函数的参数和返回值

    函数 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式 ...

  9. c语言调用shell命令一 popen使用以及获取命令返回值

    产品升级,新增网卡,原先的产品是arm平台,新网卡是mips平台,需要开发网卡的配置程序,该程序原计划是以守护进程的形式后台执行,不过测试过程中发现系统不是特别稳定,导致程序时不时奔溃下,一时半会儿无 ...

  10. Java学习Day06——函数,参数,返回值,分类,多级调用

    JavaSE基础 多听一遍不如多练一遍,多练一遍不如总结一遍,希望各位在学习的过程中,要多听,多写,多练,每天将自己所学汇总一遍,查缺补漏,成就更好的自己 一.函数 1.1概述 函数又叫方法,是完成指 ...

最新文章

  1. java 回调(callback)函数简介.
  2. ubuntu-chmod与chown命令
  3. 摩斯密码(加密/解密)脚本
  4. 交互规则_您必须永不中断的10条交互设计规则
  5. Degree Sequence of Graph G【模拟】
  6. git/ssh捋不清的几个问题
  7. PipedInputStream类 和 PipedOutputStream类 的简单介绍和代码演示
  8. 【LuoguP5289】[十二省联考2019] 皮配
  9. 拓端tecdat|R语言逻辑回归和泊松回归模型对发生交通事故概率建模
  10. 测试用例设计——场景法
  11. labjs 分析转载
  12. Flutter 2.8 更新详解
  13. 从零开始写一个Jison解析器(7/10):解析器生成器 `parser generator` 的迭代式开发流程
  14. RH358服务管理和自动化--配置网络接口
  15. 前端实现从视频中抽离出音频
  16. 血药谷浓度能否区分经TNF拮抗剂诱导获得缓解和低活动度的RA患者
  17. 【毕业设计_课程设计】基于协同过滤算法的个性化推荐系统(源码+论文)
  18. 使用python打造一个中英互译软件(基于有道翻译)
  19. Retrofit2深度解析
  20. InfoJet Service,一个InfoPath Web表单产品

热门文章

  1. HP的.NET职位面试题
  2. java+phantomjs实现动态网页抓取
  3. 【Three.js】模型抗锯齿处理
  4. D3(v5) in TypeScript 坐标轴之 饼状图生成
  5. error:cv_bridge---opencv和ros连接起来的桥
  6. 二叉搜索树(排序二叉树)
  7. nib、xib与故事板的关系
  8. 分享:ViewState压缩方法
  9. 转,jQuery入门[4]-链式代码
  10. 【业界】火山翻译:工业级应用与研究