我已经使用paramiko库在远程机器上执行了ssh命令,并将输出写入文本文件。现在,我想从文本文件中提取几个值。文本文件的输出看起来像粘贴在
下面b'\nMS Administrator\n(C) Copyright 2006-2016 LP\n\n[MODE]> SHOW INFO\n\n\nMode: \nTrusted Certificates\n1 Details\n------------\n\tDeveloper ID: MS-00c1\n\tTester ID: ms-00B1\n\tValid from: 2030-01-29T06:51:15Z\n\tValid until: 2030-01-30T06:51:15Z\n\t
我如何获得开发者ID和测试者ID的值。文件很大。
根据用户的建议,我已经编写了下面的代码段。
file = open("Output.txt").readlines()
for lines in file:
word = re.findall('Developer\sID:\s(.*)\n', lines)[0]
print(word)
我看到错误IndexError:list index超出范围 如果我删除索引。我看到空输出
答案 0 :(得分:0)
file = open("Output.txt").readlines()
developer_id=""
for lines in file:
if 'Developer ID' in line:
developer_id = line.split(":")[-1].strip()
print developer_id
答案 1 :(得分:0)
您可以使用正则表达式
text = """\nMS Administrator\n(C) Copyright 2006-2016 LP\n\n[MODE]> SHOW INFO\n\n\nMode: \nTrusted Certificates\n1 Details\n------------\n\tDeveloper ID: MS-00c1\n\tTester ID: ms-00B1\n\tValid from: 2030-01-29T06:51:15Z\n\tValid until: 2030-01-30T06:51:15Z\n\t"""
import re
developerID = re.match("Developer ID:(.+)\\n", text).group(0)
testerID = re.match("Tester ID:(.+)\\n", text).group(0)
答案 2 :(得分:0)
如果您的输出格式一致,您可以使用像line.split()这样简单的东西:
developer_id = line.split('\n')[11].lstrip()
tester_id = line.split('\n')[12].lstrip()
同样,这假设每一行都使用相同的格式。否则,请按照上面的建议使用正则表达式。