首页 > 编程语言 >go go代码中调用python脚本

go go代码中调用python脚本

时间:2023-09-28 11:55:26浏览次数:40  
标签:脚本 调用 python cmd go main

目录

go go代码中调用python脚本

有的官方文档只提供了java和python的sdk,而我们需要用他们封装的服务,只能调用python或java的接口,接下来演示怎么调用python

写个简单的py脚本

import sys

def main():
    args1 = sys.argv[1]
    args2 = sys.argv[2]
    print(args1)
    print(args2)

main()

再写个go的脚本

在go脚本中给py脚本传参

package main

import (
	"fmt"
	"log"
	"os/exec"
)

func main() {
	cmd := exec.Command("python", "script.py", "111", "222")

	// 设置工作目录(可选)
	// cmd.Dir = "path/to/script/directory"

	// 设置环境变量(可选)
	// cmd.Env = append(os.Environ(), "KEY=VALUE")

	// 捕获输出
	output, err := cmd.Output()
	if err != nil {
		log.Fatal(err)
	}

	// 处理输出
	result := string(output)
	log.Println(result)
	fmt.Println(result)
}

结果

PS D:\mycode\goProject\goproject-bakup\test> go run main.go
2023/09/28 11:43:41 111
222

111
222

以上是很简单的一个调用,复杂场景可以自行封装

标签:脚本,调用,python,cmd,go,main
From: https://www.cnblogs.com/liwenchao1995/p/17735420.html

相关文章

  • Go每日一库之28:validator
    简介今天我们来介绍一个非常实用的库——validator。validator用于对数据进行校验。在Web开发中,对用户传过来的数据我们都需要进行严格校验,防止用户的恶意请求。例如日期格式,用户年龄,性别等必须是正常的值,不能随意设置。快速使用先安装:$gogetgopkg.in/go-playground/vali......
  • flash调用系统时间方法
    第一种:新建一个空MC。两个动态文本框,大小要能完整显示日期和时间,并命名为t1、t2(也可以直接给文本框的变量名)。然后在空MC中写上如下语句:onClipEvent(load){//建立星期和月份数组days=newArray("星期日","星期一","星期二","星期三","星期四","星期五",......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-17-处理鼠标悬停
    1.简介有些测试场景或者事件,playwright根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作。比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某一个元素上方,然后会出现下拉子菜单,第二种就是在搜索输入过程,选择自动补全的字段。关......
  • 在windows10上安装多个golang
    在windows10上安装多个golang原理下载不同go版本,然后重命名go可执行文件,然后配置环境变量,不同命令使用不同的版本。其实所有的开发环境都可以这么使用。比如python2,python3方法问的文心一言,哈哈哈哈哈哈总体方法如下,具体可以参考例子,例子更清楚。创建一个新的文件夹,用于......
  • Gorm接口
    packagemainimport("encoding/json""gorm.io/driver/mysql""gorm.io/gorm""net/http""strconv")//新闻结构体typeNewsstruct{Idint`json:"id"`Titlestring`json:"titl......
  • 在Go中如何实现并发
    Go语言的并发机制是其强大和流行的一个关键特性之一。Go使用协程(goroutines)和通道(channels)来实现并发编程,这使得编写高效且可维护的并发代码变得相对容易。下面是Go的并发机制的详细介绍:协程(Goroutines):协程是Go中的轻量级线程,由Go运行时管理。与传统线程相比,协程的创建和销毁......
  • Modbus动态链接库供多语言使用 | Go
    Modbus协议控制动态链接库应用场景基于各门语言都有各自的modbus协议库,且良莠不齐,而且在具体的框架下可能存在版本依赖问题,而且对modbus协议存在比较多的细节处理,可以查看modbusslave、或者modbuspoll中相关的配置可知,数据类型对应读写寄存器个数、大小端的处理等等细节,所以......
  • pptx:Python的PPT操作库
    1.安装模块Windows用户打开命令行输入:pipinstallpython-pptxMac用户打开终端/Terminal输入:pip3installpython-pptx使用windows系统,如果出现无法安装情况,可以在cmd模式下输入网址选择国内清华镜像。pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplepython-pptx......
  • Go每日一库之27:govaluate
    简介今天我们介绍一个比较好玩的库govaluate。govaluate与JavaScript中的eval功能类似,用于计算任意表达式的值。此类功能函数在JavaScript/Python等动态语言中比较常见。govaluate让Go这个编译型语言也有了这个能力!快速使用先安装:$gogetgithub.com/Knetic/govaluate......
  • JAVA代码使用JNI的方式调用C/C++动态库
    JNI(javanativeinterface),通过JNI的方式调用动态库步骤比较麻烦,不用额外引入依赖,对java项目工程依赖侵入为0,类中含有native描述的方法都会与动态库去一一映射,能通过System.load()函数去加载动态库,这种方式主要使用的场景是java写好类(一般不是接口),让C或者C++去实现......