学习环境:windows11和python3.14,搭配wmware,搭配Cisco路由器虚拟机,Liunx虚拟机和python3.11,TraeIDE。20年资深网工,CCIE 1937X SECURITY。通过这些练习,实现对各厂商的show信息,日志信息进行采集,重新定义排列逻辑。和AI的搭配场景:1.全部AI写代码,并且在写的同时备注好功能,做好一步一校验的逻辑,写成学习文档,我直接在系统校验结果即可。学会了,这些材料作为备份以后复习直接可使用。2.skills技能:精确的采集和排列指令,直接且高效,避免浪费token。3.agent能力:指定的AI agent,完成指定场景的事情,避免AI幻觉。4.ITSM对接:以指定的格式存入数据库,而数据库提供标准的API接口以备其它AI agent调用分析
1.f-string:打印一条Syslog告警
定义以下变量,使用 f-string 打印一条网络设备的Syslog告警信息:
date = "2026-03-03"
hostname = "SW-Core-01"
level = "CRITICAL"
message = "%LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to down"
打印效果如下:
2026-03-03 SW-Core-01 CRITICAL %LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to down
代码:
# 定义变量
date="2026-03-03"
hostname="SW-Core-01"
level="CRITICAL"
message="%LINK-3-UPDOWN: Interface GigabitEthernet0/1, changed state to down"
# 使用f-string打印Syslog告警信息
print(f"{date}{hostname}{level}{message}")
效果截图:

2.切片:提取接口类型和编号
现在有一个接口名字符串:
interface = "GigabitEthernet0/0/1"
通过切片的方式,分别提取出接口类型和接口编号,并打印:
接口类型: GigabitEthernet
接口编号: 0/0/1
提示: 先数一下 "GigabitEthernet" 有几个字符。
代码:
# 定义接口名字符串
interface="GigabitEthernet0/0/1"
# 计算"GigabitEthernet"的字符数:15个字符
# 提取接口类型(前15个字符)
intf_type=interface[:15]
# 提取接口编号(从第15个字符开始到结束)
intf_number=interface[15:]
# 打印结果
print(f"接口类型: {intf_type}")
print(f"接口编号: {intf_number}")
效果截图:

3.字符串方法:处理show version输出
从设备采集回来的版本信息字符串经常有多余的空格,需要处理后再使用:
version_raw = "Cisco IOS XE Software, Version 17.03.04"
完成以下3步并分别打印结果:
去掉首尾空格(strip)
把字符串转成全大写(upper)
把 "17.03.04" 替换成 "17.06.01"(replace)
打印效果如下:
去掉空格: Cisco IOS XE Software, Version 17.03.04
转大写:CISCO IOS XE SOFTWARE, VERSION 17.03.04
替换版本: Cisco IOS XE Software, Version 17.06.01
代码:
# 定义原始版本信息字符串
version_raw=" Cisco IOS XE Software, Version 17.03.04 "
# 1. 去掉首尾空格
version_stripped=version_raw.strip()
# 2. 转成全大写
version_upper=version_stripped.upper()
# 3. 替换版本号
version_replaced=version_stripped.replace("17.03.04", "17.06.01")
# 打印结果
print(f"去掉空格: {version_stripped}")
print(f"转大写: {version_upper}")
print(f"替换版本: {version_replaced}")
效果:

4.format格式化:打印接口状态巡检报告
定义以下变量,使用 format() 打印一份格式整齐的接口状态报告:
intf1 = "Gi0/0", status1 = "up", speed1 = "1G"
intf2 = "Gi0/1", status2 = "down", speed2 = "1G"
intf3 = "Gi0/2", status3 = "up", speed3 = "10G"
打印效果如下:
接口状态速率
--------------------
Gi0/0up1G
Gi0/1down1G
Gi0/2up10G
代码:
# 定义变量
intf1, status1, speed1="Gi0/0", "up", "1G"
intf2, status2, speed2="Gi0/1", "down", "1G"
intf3, status3, speed3="Gi0/2", "up", "10G"
# 打印表头
print("接口 状态 速率")
print("--------------------")
# 使用format()方法打印接口信息,确保格式对齐
print("{:<8}{:<6}{:<4}".format(intf1, status1, speed1))
print("{:<8}{:<6}{:<4}".format(intf2, status2, speed2))
print("{:<8}{:<6}{:<4}".format(intf3, status3, speed3))
效果:
