在python中解码十六进制(ASCII)

在python中解码十六进制(ASCII),python,shell,encoding,ascii,Python,Shell,Encoding,Ascii,我正在尝试制作一个与Windowsshell交互的程序,因此我尝试了以下命令: output = subprocess.run('ipconfig', stdout = subprocess.PIPE) output.stdout output = os.popen('ipconfig','r',1).read() 但部分输出(俄语)以十六进制(ASCII)表示: 应该是 Wireless LAN adapter Беспроводная сеть 4: 我需要所有的输出信息是文本 顺便说

我正在尝试制作一个与Windowsshell交互的程序,因此我尝试了以下命令:

output = subprocess.run('ipconfig', stdout = subprocess.PIPE)
output.stdout

output = os.popen('ipconfig','r',1).read()
但部分输出(俄语)以十六进制(ASCII)表示:

应该是

Wireless LAN adapter Беспроводная сеть 4:
我需要所有的输出信息是文本

顺便说一下,当我在写模式下使用os.popen('ipconfig','w')时,输出是正确的,没有十六进制值,只有文本,但我无法将其保存为整数

有些人已经提出了问题,我发现

谢谢你的帮助

试试这个

output.decode('cp866')
使用您的示例,子流程的输出应该是
bytes
对象(在Python 3中):

b'Wireless LAN adapter\x81\xa5\xe1\xaf\xe0\xae\xa2\xae\xa4\xad\xa0\xef\xe1\xa5\xe2\xec 4:'。解码('cp866')
>'无线局域网适配器ББСПБСаааааа4:'
一般来说,您需要知道系统使用的是哪种编码,
cp866
用于俄语,请检查

您还可以使用查询系统默认编码

sys.getdefaultencoding()
如果匹配,您甚至不需要在调用
bytes.decode
时指定它

Wireless LAN adapter Беспроводная сеть 4: