根据字母条件从python子进程的列输出中获取信息

时间:2018-08-14 07:35:59

标签: python python-3.x subprocess

我正在研究一个Python(3.6)项目,在该项目中我需要通过子过程模块运行一些命令。它以以下格式返回输出:

  

有时以这种方式:

NAME          TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
app-service   LoadBalancer   10.15.255.188   35.224.27.211   8080:30323/TCP   3m
kubernetes    ClusterIP      10.15.240.1     <none>          443/TCP          5m
  

但有时以这种方式:

NAME          TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)          AGE
kubernetes   ClusterIP        10.15.255.188   35.224.27.211   8080:30323/TCP   3m
node-app    LoadBalancer      10.15.240.1     <none>          443/TCP          5m

它实际上按字母顺序显示这些行,但是我一直想获取其他任何行的4th列而不是kubernetes行,这是默认行,每次都会附带它,所以如何我抓住另一排的 4th列是位于kubernetes行之前还是此行之后。

当前我得到的输出为:

out_ip = subprocess.check_output(["kubectl get svc | awk '{print $4}'"], shell=True)
all_ips = out_ip.decode().split('\n')
ip = all_ips[2]
print(ip)

它总是返回第二行的4th列,当另一行在字母k之后时,这很好,但是在k之前时,它显示在{{ 1}}行。

那么,如何应用条件从所需的行中获取kubernetes

请帮帮我!

谢谢!

0 个答案:

没有答案