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

Python 如何搜索字符串并输出字符串的前3行,python,Python,我目前正在尝试从网络设备读取show命令,只获取show命令的前3行并存储它们,以防在此脚本期间发生什么情况,并将它们视为回滚对象 我一辈子都不知道如何搜索一个大字符串的输入,只输出前三行,而忽略其他所有内容 *编辑*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-dis

我目前正在尝试从网络设备读取show命令,只获取show命令的前3行并存储它们,以防在此脚本期间发生什么情况,并将它们视为回滚对象

我一辈子都不知道如何搜索一个大字符串的输入,只输出前三行,而忽略其他所有内容

*编辑*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)命令?

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

test\u str=''这是第1行
这是2号线
这是3号线
其他一些线路
更多线路
废话废话
最后一行
'''
split\u str=test\u str.split('\n')
第一条线=分割线[:3]

如果这样做没有帮助,我建议你做一个简单的代码示例来说明你遇到的问题,因为上面的代码片段很长,并且有很多与你所说的问题无关的部分

欢迎来到StackOverflow。不过,你的问题很不清楚。所有这些代码与“只输出前三行而忽略其他所有内容”有什么关系?如果打印字符串,是否只需要打印前三行?您显示的“输出”是什么(代码中不包括print语句)?请通过阅读和以下内容进行澄清。我只想获得并保留以下信息:接口GigabitEthernet0/1说明带宽我从输出中获得的所有其他信息,我可以不太关心,因为这只是对上述内容进行更改。你没有回答我的大多数问题。我建议您编辑您的问题以处理我提出的问题,这将澄清您的问题,并使您更有可能获得好的答案。因此,我感到困惑,因为我对python流不熟悉,我不理解为什么我提取的信息被用作列表,因为执行新的python脚本与从设备获取信息的方式不同。所以我不知道如何让别人更容易阅读。@RoryDaulton是正确的。试着磨练你需要帮助的部分。这就是说,假设您显示的输出始终具有相同的模式,您可能会在必要时(即暂时)尝试将最后的
print
语句替换为以下内容:
print(currentconfig.partition('\n ip address')[0])
。欢迎使用StackOverflow。谢谢,我使用了您的输入,但将[:3]更改为[:4],因为Cisco添加了一个空字符,但在我的示例inte中,它唯一的输出是这样的