如何获取subprocess.check_output()python模块的输出?

Ste*_*oky 6 python windows string subprocess python-3.x

我正在尝试从python中的命令提示符(CMD - Windows)获取信息,使用模块子进程,如下所示:

ipconfig = subprocess.check_output("ipconfig")
print(ipconfig)
Run Code Online (Sandbox Code Playgroud)

结果是:

b'\r\nWindows IP Configuration\r\n\r\n\r\nEthernet adapter Local Area Connect:\r\n\r\n   Connection-specific DNS Suffix  . : XX.XXX\r\n   IPv4 address. . . . . . . . . . . : XXXXXXXXX\r\n   Subnet Mask . . . . . . . . . . . : XXXXXXXXXX\r\n   Default Gateway . . . . . . . . . : XXXXXX\r\n'
Run Code Online (Sandbox Code Playgroud)

我已经阅读了文档,module subprocess但我找不到任何适合我的问题.

我需要一个很好的格式化字符串中的这些信息...不是那样的,我该怎么办?

(我认为这里的问题是一个字符串格式,但是如果你有一个不需要字符串格式就可以得到一个好输出的技巧,我很感激)

我知道我可以使用套接字模块获取IP地址,但我只是举个例子.

Mar*_*ers 8

您正在打印bytes字符串值,并print()使用它将其转换为unicode字符串repr().您想要将值解码为unicode:

import sys

print(ipconfig.decode(sys.stdout.encoding))
Run Code Online (Sandbox Code Playgroud)

这使用控制台的编码来解释命令输出.