亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法打印中文,如果使用 Go 到 exec python 腳本

無法打印中文,如果使用 Go 到 exec python 腳本

Go
RISEBY 2022-08-01 17:16:20
我使用以下命令通過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”時,它運行良好。我得到的輸出如下: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, "")
查看完整描述

3 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

為了能夠打印中文,您必須創建一個可以顯示中文的cmd提示。開始注冊表編輯并導航到

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont

添加新字符串

Name: 935
Value: *新宋體

這將顯示為 NSimSun。這是在Win7上。我還沒有在W10上嘗試過 - 它可能接受NSimSun而不是中文的等效物。我不記得我是怎么得到這個等同的中文名字的。

關閉注冊表編輯器,啟動新的 cmd 提示符。彈出屬性,選擇字體并將其更改為NSimSun。

現在運行打印英文和中文的小段代碼,你應該看到中文和英文位。

至于GoLang位,你將不得不看看@TehSphinX的答案。


查看完整回答
反對 回復 2022-08-01
?
www說

TA貢獻1775條經驗 獲得超8個贊

添加以下代碼,效果很好:


   import sys,io,platform

   if(platform.system()=='Windows'):

      import sys,io

      sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8')


查看完整回答
反對 回復 2022-08-01
?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

在Go中,還沒有執行任何東西。它返回一個結構,您必須使用它提供的方法執行該結構。exec.Commandexec.CmdRun


然后,您執行的命令的輸出將通過管道傳回 Go,而不是直接傳輸到控制臺。


使用函數執行和捕獲輸出的工作示例:Output


func main() {

    cmd := exec.Command("python", "test.py")

    bts, err := cmd.Output()

    if err != nil {

        log.Fatal(err)

    }

    fmt.Print(string(bts))

}

test.py文件:


# coding=UTF-8


print("hello")

print("系統")


查看完整回答
反對 回復 2022-08-01
  • 3 回答
  • 0 關注
  • 229 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號