gpt4 book ai didi

python - 使用 Python 从 Telnet 输出中提取特定字符串

转载 作者:太空宇宙 更新时间:2023-11-04 05:45:49 24 4
gpt4 key购买 nike

我正在尝试编写一个 Python 脚本来远程登录到一堆 Cisco 路由器,提取运行配置并保存它。每个路由器都有不同的名称,所以我想做的是提取设备名称并使用该名称保存输出文件。例如,这是一段 Cisco 路由器输出,其中有一行 "hostname ESW1":

Current configuration : 1543 bytes

!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname ESW1
!
boot-start-marker
boot-end-marker
!

我正在使用 telnetlib,我可以获得输出并将其保存在一个变量中。我的问题是如何识别该特定行并在“主机名”之后提取“ESW1”字符串?

最佳答案

使用正则表达式:

config_string = '''Current configuration : 1543 bytes

!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname ESW1
!
boot-start-marker
boot-end-marker
!'''

import re
hostname = re.findall(r'hostname\s+(\S*)', config_string)[0]
print hostname
# ESW1

或者,如果您不喜欢正则表达式:

for line in config_string.splitlines():
if line.startswith('hostname'):
hostname = line.split()[1]
print hostname
# ESW1

我认为正则表达式会比循环运行得更快。

关于python - 使用 Python 从 Telnet 输出中提取特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32372490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com