从python文件中提取一个值

2024-10-01 07:35:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用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的值。这个文件很大。在

根据用户的建议,我写了下面的片段。在

^{pr2}$

我看到错误索引器错误:列表索引超出范围 如果我删除索引。我看到空输出


Tags: 命令机器idparamiko远程modeshow错误
3条回答
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

您可以使用正则表达式

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)

如果输出的格式一致,可以使用线.分割():

developer_id = line.split('\n')[11].lstrip()
tester_id = line.split('\n')[12].lstrip()

同样,这假设每一行都使用相同的格式。否则,请按照上面的建议使用regex。在

相关问题 更多 >