无法解码ipconfig的输出

时间:2018-11-05 10:55:20

标签: python cmd

我想将ipconfig命令的输出分配给字符串,但无法对其进行解码。

当我尝试这样做时:

import subprocess
out = subprocess.check_output("ipconfig",shell = True)
out = out.decode('utf-8')
print(out)

我收到此错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa7 in position 192: invalid start byte

什么原因导致此问题?

3 个答案:

答案 0 :(得分:0)

您似乎对语言环境有疑问。尝试将LANG=C环境变量传递给子流程。

out = subprocess.check_output("ipconfig", env={"LANG": "C"}, shell = True)

答案 1 :(得分:0)

我找到了解决方案。现在可以使用。我定义了一个将字节编码为char的函数。

def cool_decode(rose):
    output = ""
    for i in rose:
        output = output + chr(i)
    return output

答案 2 :(得分:-1)

您似乎尝试将十六进制编码为字符串。 在我的情况下(macOS)ipconfig希望添加以下命令:

  

waitall,getifaddr,ifcount,getoption,getpacket,getv6packet,set,setverbose

尝试:

import subprocess
out = subprocess.check_output("ifconfig",shell = True)
out = out.decode('utf-8')
print(out)