python执行win系统dos命令输出文件乱码问题处理(设置转码格式为GBK)

通过python执行cmd命令后并获取结果,比如获取本机ipconfig信息:

# 获取本机所有ip地址
import subprocess

def get_ipconfig():
    child= subprocess.Popen("ipconfig", shell=True, stdout=subprocess.PIPE)
    out= child.communicate()  # 保存ipconfig中的所有信息
    return out

if __name__ == "__main__":
    print(get_ipconfig())

运行后结果会显示乱码:

 

打印日志看了下,发现返回的是元组类型且只有第一个元素有数据

 

看下第一个元素类型发现是bytes

然后我就想到对他进行转码,但是改成utf-8并不对

 

 后来了解乐下,cmd窗口默认是用的gbk,所以这儿修改下转码格式就可以了

 

posted on 2020-09-05 17:39  菜鸡快学  阅读(557)  评论(0编辑  收藏  举报

导航