将python3中os.popen的默认编码由ascii修改为utf-8

问题描述:

参考地址: https://www.v2ex.com/t/458543
操作系统:Widnows10

虽然pycharm的默认编码是uft8,但是popenWindows下运行时,还是会使用默认的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()
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐