我写了一个脚本,输出思科交换机数据到一个.txt文件。我想用Python解析这些文件,以便只从中提取所需的信息。以下是文本文件中的数据示例:
VLAN Name Status Ports
---- -------------------------------- --------- -------------------------------
1 default active Gi0/3, Gi1/0, Gi1/1, Gi1/2, Gi1/3, Gi2/1, Gi2/2, Gi2/3
95 MGMT-VLAN95 active Gi0/2
1002 fddi-default act/unsup
1003 token-ring-default act/unsup
1004 fddinet-default act/unsup
1005 trnet-default act/unsup p
1005 trnet-default act/unsup
在我有限的Python知识的基础上,我试图通过以下方式实现这一目标,但我无法实现我的愿望:
^{pr2}$['VLAN', 'Name', 'Status', 'Ports']
['----', '--------------------------------', '---------', '-------------------------------']
['1', 'default', 'active', 'Gi0/3,', 'Gi1/0,', 'Gi1/1,', 'Gi1/2,', 'Gi1/3,', 'Gi2/0,', 'Gi2/1,', 'Gi2/2,', 'Gi2/3,', 'Gi3/0,', 'Gi3/1,', 'Gi3/2,', 'Gi3/3']
['95', 'MGMT-VLAN95', 'active', 'Gi0/2']
['1002', 'fddi-default', 'act/unsup']
['1003', 'token-ring-default', 'act/unsup']
['1004', 'fddinet-default', 'act/unsup']
['1005', 'trnet-default', 'act/unsup', 'p']
['1005', 'trnet-default', 'act/unsup']
以下是我希望的输出:
VLAN Name
---- --------------------------------
1 default
95 VLAN-MGMT95
200 VLAN200
1002 fddi-default
1003 token-ring-default
1004 fddinet-default
1005 trnet-default
你可以这样做:
这样,文件中的每一列都会转到
^{pr2}$content
列表中的特定位置(索引)。因此,如果要打印VLAN,只需键入:如果要打印VLAN名称:
对于两者:
^{4}$如果只需要前两列,请执行以下操作:
(注意,我更改了变量,因为“list”是一个Python关键字)。在
不确定您的回溯是什么,但我建议使用以下方法:
这将避免出现格式错误的行,从而避免弹出
IndexError
异常。另外,ljust(4)
通过用四个空格左对齐VLAN列中的字符串,使输出具有更好的格式。在相关问题 更多 >
编程相关推荐