如何使用Python在bash屏幕上捕获特定单词?
问题描述:
我是新来的蟒蛇,在执行shell命令,我得到一个输出,例如说:如何使用Python在bash屏幕上捕获特定单词?
[T @ CentOS的配置] $显示图像
REPOSITORY TAG的形象创造了ID
AP -11aug - 最新最新c070f30df2bd9周前
你好世界最新af340544ed629周前
其中存储库中,TAG,IMAGE,ID和创建的列标头。
现在,我想复制说,例如文本ap-11aug-latest
这是在第二行和第一列,我怎样才能捕捉它使用Python?空格是分隔符。
我基本上想捕捉那个位置的文本,即第二行和第一列。
答
这个小小的代码片段将在子进程中执行你的命令,并且会给你捕获标准输出的可能性。
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')
谢谢!这段代码检索第一列。输出将是:REPOSITORY ap-11aug-latest hello-world现在,我需要第二行的文本。所以,我将检索第一列第二行上的文本。在这种情况下,我应该调整以仅检索“ap-11aug-latest”? – Tejas
我编辑了我的答案 –
非常感谢!为我工作! – Tejas