Python在冒号后打印值

Python to print value after colon

我的命令打印以下输出:

1
2
3
4
5
6
7
8
   -------------------------------------------------------------------------
   Producing details for server state
   ------------------------------------------------------------------------

  power:ok
  fault:none
  state:assigned
  load:normal

我阅读了python字典文档:

1
2
3
myCat = {'size': 'fat', 'color': 'gray', 'disposition': 'loud'}
myCat['size']
output: fat

就像python字典。如何打印电源状态、负载

所以我想在这里,我必须重定向输出文件,如下所示:

注意:命令行输出行是随机的(文件输出长度不是常量)

1
serverstate = {'powerstate': 'ok', 'load': 'normal'}

以便打印serverstate["powerstate"]。我会得到价值。

请告知。如果我走错了路。


当您说"我的命令按照输出打印"时,我假设您的意思是您有一个可执行文件或类似的东西,它与您的Python脚本无关,后者在您运行该输出时打印该输出。我们称之为check_server_state.exe

可以使用subprocess.check_output将可执行文件的输出转换为字符串。然后您可以迭代该字符串的行并提取键值对。

1
2
3
4
5
6
7
8
9
10
11
12
import subprocess
s = subprocess.check_output("check_server_state.exe") #or whatever the actual name is
d = {}
for line in s.split("
"
):
    if":" not in line:
        continue
    key, value = line.strip().split(":", 1)
    d[key] = value

print(d)
print(d["power"])

结果:

1
2
{'load': 'normal', 'fault': 'none', 'state': 'assigned', 'power': 'ok'}
ok