我目前正在尝试从网络设备读取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)命令的地方吗?
答案 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 代码示例,以显示您遇到的问题,因为上述代码段很长,并且有很多与您无关的部分陈述的问题。