为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
撒科打诨 2023-06-26 16:22:55
在我的 python 脚本中,我尝试将变量传递给 Go 二进制文件以执行操作,并从 Go 二进制文件中检索输出作为变量,并在我的 python 脚本中使用它这是我的 Go 程序,我用它来创建我的二进制文件,并且我正在创建二进制文件package mainimport (    "fmt"    "log"    "os"    "strconv"    ps "github.com/mitchellh/go-ps")var args_pid stringvar xyz intfunc 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 osargs_pid = 1401cmd = './process_pid args_pid'so = os.popen(cmd).read()print so我收到以下错误: strconv.ParseInt: parsing "args_pid": invalid syntax有人可以帮我解决这个问题吗?
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

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()).


然后你的 Python 代码执行检索答案的操作就可以了。你只需要把它转换为 int :so = int(os.popen(cmd).read())


查看完整回答
反对 回复 2023-06-26
  • 1 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信