Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将python变量传递到二进制_Python_Go_Binary - Fatal编程技术网

无法将python变量传递到二进制

无法将python变量传递到二进制,python,go,binary,Python,Go,Binary,在我的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 fun

在我的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:解析参数\u pid:无效语法

有人能帮我解决这个问题吗

args_pid = 1401
cmd = './process_pid {}'.format(args_pid)
so = os.popen(cmd).read()
print so
您将字符串args_pid传递给Go二进制文件,而不是实际值

在传递答案时,我会这样做:您的go程序可以使用fmt.Printf%d,pp.PID将PID打印到标准输出


那么Python代码检索答案所做的工作就可以了。您只需要将其转换为int:so=intos.popencmd.read

谢谢您的解决方案,它工作得很好,但我问题的第二部分是如何从Go binary(即pp.Pid)检索输出,并将其用作python脚本中的变量