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

时间:2014-01-31 17:48:20

标签: python windows string python-3.x subprocess

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

ipconfig = subprocess.check_output("ipconfig")
print(ipconfig)

结果是:

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'

我已阅读module subprocess上的文档,但我找不到任何符合我问题的内容。

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

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

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

1 个答案:

答案 0 :(得分:7)

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

import sys

print(ipconfig.decode(sys.stdout.encoding))

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