如何搜索字符串并输出字符串的前三行

时间:2019-02-13 21:38:45

标签: python

我目前正在尝试从网络设备读取show命令,并仅获取show命令的前三行,并将它们存储起来,以防在脚本执行过程中发生某些情况,并将其视为回滚对象。

我一辈子都想不通如何搜索大字符串的输入,而只输出前三行而不理会其他所有内容。

*编辑* 2 *希望更易于阅读。

gig1 = '''interface GigabitEthernet0/1
description
bandwidth
ip address x.x.x.x x.x.x.x
ip access-group xxx in
ip nbar protocol-discovery
ip flow monitor input
ip flow monitor output
ip flow egress
duplex auto
speed auto
service-policy output QOS-PARENT-OUT
'''

class Comparison():

    def CurrentConfig(interface):

        cmd = '{} '.format(interface)

        print(cmd)
        split_str = cmd.split('\n')
        first_3_lines = split_str[:3]
        return (first_3_lines)

if __name__ == '__main__':

    config = { 'interfaces': gig1 }

    interface = config['interfaces']
    output_list = []output = Comparison.CurrentConfig(interface)
    output_list.append(output)

    currentconfig = output

    print(currentconfig)

输出:     ['interface GigabitEthernet0 / 1','description','bandwidth']

但是我希望输出不是列表格式,这是您添加.format(currentconfig)命令的地方吗?

1 个答案:

答案 0 :(得分:0)

以下代码将返回多行字符串的前三行:

test_str = '''this is line 1
this is line 2
this is line 3
some other lines
more lines
blah blah blah


last line
'''

split_str = test_str.split('\n')
first_3_lines = split_str[:3]

如果这没有帮助,我可以建议您制作一个 minimum 代码示例,以显示您遇到的问题,因为上述代码段很长,并且有很多与您无关的部分陈述的问题。