我想将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是什么导致了这个问题?
发布于 2018-11-05 19:12:36
看起来您在语言环境方面遇到了问题。尝试将LANG=C环境变量传递给子进程。
out = subprocess.check_output("ipconfig", env={"LANG": "C"}, shell = True)发布于 2018-11-06 21:07:20
我找到了一个解决方案。它现在是有效的。我定义了一个函数,一个接一个地对字节进行编码。
def cool_decode(rose):
output = ""
for i in rose:
output = output + chr(i)
return output发布于 2018-11-05 19:14:30
看起来您正在尝试将十六进制编码为字符串。在我的例子中(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)https://stackoverflow.com/questions/53152982
复制相似问题