Python在冒号

时间:2017-04-16 15:53:19

标签: python python-2.7

我的命令打印以下输出:

   -------------------------------------------------------------------------
   Producing details for server state
   ------------------------------------------------------------------------

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

我阅读了python Dictionary文档:

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

喜欢python Dictionary。如何打印电源状态,加载

所以我想要的是,我必须将输出文件重定向到这样:

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

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

这样我就会打印serverstate ['powerstate']。我会得到价值。

请指教。如果我走错了路。

1 个答案:

答案 0 :(得分:1)

当你说“我的命令打印输出后”时,我认为你的意思是你有一个可执行文件或类似的东西,这与你运行它时打印输出的Python脚本无关。我们称之为check_server_state.exe

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

import subprocess
s = subprocess.check_output("check_server_state.exe") #or whatever the actual name is
d = {}
for line in s.split("\n"):
    if ":" not in line:
        continue
    key, value = line.strip().split(":", 1)
    d[key] = value

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

结果:

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