如何使用linux将kapacitor中的多个值存储到python变量中?

2024-04-29 06:05:28 发布

您现在位置:Python中文网/ 问答频道 /正文

此命令提供多个值

kapacitor list tasks | grep -i enabled

我需要遍历并存储上述命令的输出。我试过了

enabled = os.system("kapacitor list tasks | grep -i enabled")
print enabled

此命令的输出kapacitor list tasks | grep-i enabled

Alert\u ALL\u metrics\u cpu stream enabled true[“metrics\u NWNA.”“autogen”metrics\u NN.“autogen”] tAlert\u ALL\u metrics\u memory\u usage stream enabled true[“metrics\u NWNA.”“autogen”metrics\u NN.“autogen”] tAlert\u ALL\u oracle\u TBS\u offline stream enabled true[“oracle\u NWNA.”“autogen”“oracle\u NN.”“autogen”] tAlert\u NN\u WMS\u endpoint-message-count\u MSE stream enabled true[“metrics.”“autogen”] tAlert\u NN\u ecom\u version\u check stream enabled true[“metrics\u NN.”“autogen”] tAlert\u NN\u ecom\u version\u check\u all\u farms stream enabled true[“metrics\u NN.”“autogen”] tAlert\u NN\u metrics\u fileSystem stream enabled true[“metrics\u NN.”“autogen”] tAlert\u NWNA\u metrics\u fileSystem stream enabled true[“metrics\u NWNA.”“autogen”]


Tags: 命令truestreamenablednnallgreplist
2条回答

不要使用操作系统模块,而是尝试使用子进程模块

导入子流程

ele = subprocess.Popen(['kapacitor', 'list', 'tasks', '|', 'grep', '-i', 'enabled'] shell=True)
output, err = ele.communicate()
print(output)

这将在输出中存储运行的命令的输出(作为变量),然后您可以调用它并从那里对它执行任何操作

不知道什么变量与您的“启用”,但尝试下面

from subprocess import check_output

datas = []

data = check_output("kapacitor list tasks | grep -i enabled")

print (data)

for i, j, k in data:    # i,j,k are just three variables in example. Add more if needed.
    datas.append((i,j),(k))

print (datas[0])  # prints (i,j)

对于其他类型的子进程命令,请检查SO问题:Linux command-line call not returning what it should from os.system?

相关问题 更多 >