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,所以这儿修改下转码格式就可以了