我想将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
什么原因导致此问题?
答案 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)