如何使用Python在bash屏幕上捕获特定单词?

时间:2015-10-14 09:46:04

标签: python shell python-2.7

我是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捕获它?空间是分隔符。

我基本上想要捕获那个位置的文本,即第二行和第一列。

1 个答案:

答案 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')