无法将python变量传递到二进制
在我的python脚本中,我试图将一个变量传递给Go二进制文件,以执行一个操作,并从Go二进制文件中检索输出作为变量,并在我的python脚本中使用它 这是我的Go程序,我用它来创建二进制文件,我正在创建二进制文件无法将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
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脚本中的变量