我的命令打印以下输出:
-------------------------------------------------------------------------
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']。我会得到价值。
请指教。如果我走错了路。
答案 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