猿问

无法将 python 变量传递为二进制文件

在我的 python 脚本中,我尝试将变量传递给 Go 二进制文件以执行操作,并从 Go 二进制文件中检索输出作为变量,并在我的 python 脚本中使用它


这是我的 Go 程序,我用它来创建我的二进制文件,并且我正在创建二进制文件


package main


import (

    "fmt"

    "log"

    "os"

    "strconv"


    ps "github.com/mitchellh/go-ps"

)


var args_pid string

var xyz int


func main() {

args_pid = os.Args[1]


    first, err := strconv.ParseInt(args_pid, 10, 0)

    if err != nil {

        fmt.Println(err)

        os.Exit(2)

    }

    xyz = int(first)

    pp, _ := ps.FindProcess(xyz)

    log.Printf("The pid of passed process is %v\n", pp.Pid())

}

这是我的 python 脚本,我在其中使用这个二进制文件


import os

args_pid = 1401

cmd = './process_pid args_pid'

so = os.popen(cmd).read()

print so

我收到以下错误: strconv.ParseInt: parsing "args_pid": invalid syntax


有人可以帮我解决这个问题吗?


撒科打诨
浏览 116回答 1
1回答

慕斯王

args_pid = 1401cmd = './process_pid {}'.format(args_pid)so = os.popen(cmd).read()print so您将字符串 args_pid 而不是实际值传递给 Go 二进制文件。当谈到传递答案时,我会采用这样的方法:你的 Go 程序可以使用fmt.Printf("%d", pp.Pid()).然后你的 Python 代码执行检索答案的操作就可以了。你只需要把它转换为 int :so = int(os.popen(cmd).read())
随时随地看视频慕课网APP

相关分类

Go
我要回答