python使用subprocess模块可以方便的运行系统命令,并获取输入,但是当输出的内容中存在中文时返回的数据就是进行过编码后的,无法正常显示,因此要对其进行一下转码,过程如下:
首先,应该知道命令行使用哪种编码显示输出结果,在命令行中运行 chcp 命令来获取活动页代码,如:"活动页代码:936"
MS-DOS为以下国家和语言提供字符集: 代码页描述 1258 越南语 1257 波罗的语 1256 阿拉伯语 1255 希伯来语 1254 土耳其语 1253 希腊语 1252 拉丁 1 字符 (ANSI) 1251 西里尔语 1250 中欧语言 950 繁体中文 949 朝鲜语 936 简体中文(默认) GBK 932 日语 874 泰国语 850 多语种 (MS-DOS Latin1) 437 MS-DOS 美国英语 65001 UTF-8
然后在PY内对获取到的结果进行相应转码即可
例如我的活动代码页为936,即GBK编码
那么应该就应该这样写:
String = str(Output.stdout.readline(),encoding=
'gbk')
Output为subprocess.Popen命令返回的对象
转载于:https://www.cnblogs.com/my-action/p/4528627.html