簡體   English   中英

如何使用linux將多個值從kapacitor存儲到python變量中?

[英]how to store multiple values from kapacitor into python variable using linux?

此命令給出多個值。

kapacitor list tasks | grep -i enabled

我需要遍歷並存儲上述命令的輸出。 我試過

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

此命令的輸出 kapacitor list tasks | grep -i 啟用

Alert_ALL_metrics_cpu 流啟用真 ["metrics_NWNA"."autogen" "metrics_NN"."autogen"] tAlert_ALL_metrics_memory_usage 流啟用真 ["metrics_NWNA"."autogen" "metrics_NN"."autogen"] tAlert_ALL_oracle_TBS_NWNA_offline 啟用流autogen" "oracle_NN"."autogen"] tAlert_NN_WMS_endpoint-message-count_MSE 流啟用 true ["metrics"."autogen"] tAlert_NN_ecom_version_check 流啟用 true ["metrics_NN"."autogen"] tAlert_NN_ecom_version_check_all_farms 流啟用 true ["metrics"."autogen"] autogen"] tAlert_NN_metrics_fileSystem 流啟用 true ["metrics_NN"."autogen"] tAlert_NWNA_metrics_fileSystem 流啟用 true ["metrics_NWNA"."autogen"]

不要使用 os 模塊,而是嘗試使用 subprocess 模塊。

導入子流程

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 命令行調用未從 os.system 返回它應該返回的內容?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM