我是python的新手,在执行shell命令时,我得到一个输出,例如:
[t @ centos conf] $ show images
创建了累积标签图像ID
ap-11aug-latest latest c070f30df2bd 9周前
hello-world最新的af340544ed62 9周前
其中REPOSITORY,TAG,IMAGE,ID和CREATED是列标题。
现在,我想复制说例如第二行和第一列中的文本ap-11aug-latest
,如何使用Python捕获它?空间是分隔符。
我基本上想要捕获那个位置的文本,即第二行和第一列。
答案 0 :(得分:0)
这个小代码片段将在子进程中执行您的命令,并使您可以捕获标准输出。
import subprocess
def get_stdout(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
result = []
line = p.stdout.readline()
while line != '':
tag = line.split(' ')[0]
print(tag)
line = p.stdout.readline()
get_stdout('show images')
如果你只想要第二行的第一列,你可以这样做:
import subprocess
def get_stdout(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
result = []
p.stdout.readline() # reads the first line
line = p.stdout.readline() # reads the second line
tag = line.split(' ')[0]
print(tag)
get_stdout('show images')