gpt4 book ai didi

python在windows中调用汉字命令行失败

转载 作者:太空宇宙 更新时间:2023-11-03 18:18:04 24 4
gpt4 key购买 nike

windows中python下,py脚本(test.py)中,os.system或subprocess.Popen调用dos命令失败,但命令行下(windows->cmd)成功.exe),脚本如下附加信息:

  • 1. dos(windows->cmd.exe)编码为“cp936”,属于“gbk”
  • 2.我已经用notepad++将test.py解码为utf-8
  • 已尝试过3种.decode('gbk')、.encode('gbk')、.decode('utf-8')、.enode('utf-8')
  • 4.我不知道为什么
  • 错误信息:

        C:\Python27\python.exe E:/XtTradeClient/test.py
    File "E:/XtTradeClient/test.py", line 5
    SyntaxError: Non-ASCII character '\xba' in file E:/XtTradeClient/test.py on line 5,but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

    Process finished with exit code 1

    -------------------------------------------------------------------------------
    # encoding='utf-8'
    import os

    if __name__ == "__main__":
    info = '汉字'
    cmd = 'echo ' + info
    if 0 != os.system(cmd):
    raise Exception('failed to call 'echo in command')
    -------------------------------------------------------------------------------

    最佳答案

    显示的错误来自于缺少编码注释。看来您尝试添加一个,但格式错误,因此无法识别。尝试:

    # encoding: utf-8

    那么下一个问题可能是 shell 期望的编码。如果您的源代码保存为 UTF-8,则其中的(字节)字符串将采用 UTF-8 编码并以这种方式传递给 os.system() 。您可能必须为实际将这些字节显示为字符的应用程序重新编码。即:首先从UTF-8解码为unicode然后从 unicodestr在终端的编码中。通过使用 unicode 文字可以避免显式解码,至少对于字符超出 ASCII 范围的(字节)字符串来说是这样。

    # encoding: utf-8
    import os


    def main():
    info = u'汉字'
    cmd = 'echo ' + info
    if not os.system(cmd.encode('gbk')):
    raise Exception('failed to call `echo` command')


    if __name__ == '__main__':
    main()

    关于python在windows中调用汉字命令行失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24679833/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com