UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 2: invalid continuation byte

问题描述

原代码

import os

cmd = "ping -n 1 192.168.127.253"
res = os.popen(cmd).read()
print(res)

通过pyinstaller打包后报错
在这里插入图片描述
百度翻译的解释

unicodedecode错误:“utf-8”编解码器无法在位置2:inva中解码字节0xd5

其实就是"UTF-8"无法解释"gbk"的代码,在不改变代码的情况暂时无法解决问题,有知道解决的小伙伴也可以与我分享一下

解决办法

目前方法只有更换函数 subprocess 解决,具体这个函数更多的使用方法大家都去百度了解

import subprocess

cmd = "ping -n 1 192.168.127.253"
a = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
lines = a.stdout.readlines()
var = lines[2].decode("gbk")
print(var)
if var.strip() == "请求超时。":
	print(var)
else:
	if var.split(":")[1].strip() == "无法访问目标主机。":
		print(var)
	else:
		print("网络连接成功")

通过pyinstaller打包后来就不会报刚才的错误了,问题解决!


本人的经验分享,希望可以帮助到你们,如何不对的地方,可以评论留言,帮我指正一下,如果帮助了你,请给我点个赞吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值