问题描述:
参考地址: https://www.v2ex.com/t/458543
操作系统:Widnows10
虽然pycharm的默认编码是uft8,但是popen在Windows下运行时,还是会使用默认的cmd来运行.而默认的cmd是gbk编码.导致在Python3调用popen执行命令时无法返回执行结果.
解决办法1:
将对象的返回结果编码改为
utf8
import os
# 用aapt命令查看apk的包名
aapt查询包名命令 = (
r"C:\ProgramData\chocolatey\bin\aapt.exe dump badging E:\code\apptest\apk\laiketui.apk|findstr package")
apk包名查询结果 = os.popen(aapt查询包名命令)
apk包名查询结果 = apk包名查询结果.buffer.read().decode(encoding='utf8')
print(apk包名查询结果)
解决办法2
import subprocess
devices =subprocess.check_output('adb devices').decode()

在Windows10环境下,尽管PyCharm默认编码为UTF-8,但os.popen在执行命令时会使用CMD的GBK编码。为解决此问题,可以将os.popen返回结果使用decode()函数转换为UTF-8编码。另外,也可以使用subprocess模块的check_output方法替代os.popen,同样进行编码转换。
1462

被折叠的 条评论
为什么被折叠?



