在python中解码十六进制(ASCII)
我正在尝试制作一个与Windowsshell交互的程序,因此我尝试了以下命令:在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: 我需要所有的输出信息是文本 顺便说
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: