python开发安卓app优缺点
1534
2022-09-14
python3调用cmd执行命令报乱码问题
一、场景
python执行cmd命名调用jar包(自己封装的)执行下载Linux服务器文件到windows本地目录
cmd='java -jar javaBot.jar download 10.182.X.X username password /home/jtapp/test.txt D:\目录\20220410\test\'result = os.popen(cmd).read()
二、报错内容
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 0: inva
三、解决方案
def cmdNoErrorCode(cmd): #解决调用os.popen执行带有中文的cmd命令乱码问题 with os.popen(cmd) as fp: bf = fp._stream.buffer.read() try: result = bf.decode().strip() except UnicodeDecodeError: result = bf.decode('gbk').strip() return result
调用方法:
result = os.popen(cmd).read()改为result = cmdNoErrorCode(cmd)
四、原因分析
cmd命令里带有中文,python程序使用utf-8去解码这些中文,但是解码失败,需要使用gbk解码。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。