我使用下面的命令通过Go运行python 3.7.4文件
Go exec.Command("cmd", "/C", "path_to_python_exe", "python_script_file")
以下脚本将打印不带中文的“abc”:
print ("abc")
print ("系统")
它不打印任何内容,也不返回任何错误:
print ("系统")
print ("abc")
当我在windows/linux终端上运行“python test.py”时,它运行得很好
我使用go获得如下输出:
stdout, err := cmd.StdoutPipe()
cmd.Start()
reader := bufio.NewReader(stdout)
output := make([]string, 0)
for {
line, err2 := reader.ReadString('\n')
if err2 != nil || io.EOF == err2 {
break
}
output = append(output, line)
}
cmd.Wait()
return strings.Join(output, "")
在Go中,{}还没有执行任何操作。它返回一个
exec.Cmd
结构,您必须使用它提供的Run
方法执行该结构然后,您执行的命令的输出通过管道传回Go,而不是直接传回控制台
使用
Output
函数执行和捕获输出的工作示例:test.py
文件:添加以下代码,效果良好:
为了能够打印中文,您必须创建一个可以显示中文的cmd提示符。启动regedit并导航到
添加新字符串
这将显示为NSimSun。这是在Win7上。我还没有在W10上试过——它可能会接受NSimSun而不是中国的同类产品。我不记得我是怎么得到这个中文名字的
关闭regedit,启动新的cmd提示符。弹出属性,选择字体并将其更改为NSimSun
现在运行一段打印英文和中文的小代码,您应该可以看到中文和英文部分
至于GoLang位,你必须看看@TehSphinX的答案
相关问题 更多 >
编程相关推荐