我正在使用 Python 3。我编写了两个程序。一个循环遍历 csv 文件以获取 Cisco 交换机的 IP 地址、登录、运行命令,然后将每个结果的结果输出到单独的文本文件。所以我最终得到了一些文本文件......每个开关一个。第二个程序使用 xlwt 将每个文本文件中的信息写入 Excel 中自己的工作表。
主要想法是我需要开发一份报告,显示端口进出服务。一旦我将这些导入 Excel,我就可以编写一些公式来提取我需要的数据。但就目前而言,当我将其导入 Excel 时,我必须手动删除一些单元格,因为所有内容都没有对齐,这是因为名称列中的某些单词之间存在空格(我正在导入 Excel以空格分隔)。我试图用字符串和列表方法(拆分、连接、切片等)做一些事情,但我无法得到我想要的。并且 Name 列在任何一种一致的约定中都没有标准化。我确实注意到虽然名称实际上可能很长,但它会被截断为一定数量的字符。
理想情况下,首先删除前 4 行(最顶部有空白行)和最后一行,然后对于 Port 和 Status 之间的任何内容,将其全部删除(完全删除该列,包括标题)。
这是从交换机获取数据后文件的外观。
sw1#term 长度 0 sw1#显示接口状态 端口名称 状态 Vlan 双工速度类型 Gi0/1 Trunk to switch (a connected 1 a-full a-100 10/100/1000BaseTX Gi0/2 网络增强 pe 已连接 1 a-full a-1000 10/100/1000BaseTX Gi0/3 已连接 1 a-full a-1000 10/100/1000BaseTX Gi0/4 已连接 1 a-full a-100 10/100/1000BaseTX Gi0/5 notconnect 1 auto auto 不存在 Gi0/6 未连接 1 自动 自动 不存在 Gi0/7 未连接 1 自动 自动 不存在 Gi0/8 未连接 1 自动 自动 不存在 Gi0/9 未连接 1 自动 自动 不存在 Gi0/10 已连接 1 a-full a-100 10/100/1000BaseTX Gi0/11 notconnect 1 auto auto 不存在 Gi0/12 已连接 1 a-full a-100 10/100/1000BaseTX Gi0/13 禁用 1 自动 自动 不存在 Gi0/14 禁用 1 自动 自动 不存在 Gi0/15 禁用 1 自动 自动 不存在 Gi0/16 禁用 1 自动 自动 不存在 sw1#注销
最终结果我想在下面。这应该允许行/列结构在导入 Excel 时保持不变。请注意,所有列信息都用空格分隔。我发现导入为固定宽度或以空格分隔,并将连续空格视为一个检查似乎工作得很好。
端口状态 Vlan 双工速度类型 Gi0/1 已连接 1 a-full a-100 10/100/1000BaseTX Gi0/2 已连接 1 a-full a-1000 10/100/1000BaseTX Gi0/3 已连接 1 a-full a-1000 10/100/1000BaseTX Gi0/4 已连接 1 a-full a-100 10/100/1000BaseTX Gi0/5 notconnect 1 auto auto 不存在 Gi0/6 未连接 1 自动 自动 不存在 Gi0/7 未连接 1 自动 自动 不存在 Gi0/8 未连接 1 自动 自动 不存在 Gi0/9 未连接 1 自动 自动 不存在 Gi0/10 已连接 1 a-full a-100 10/100/1000BaseTX Gi0/11 notconnect 1 auto auto 不存在 Gi0/12 已连接 1 a-full a-100 10/100/1000BaseTX Gi0/13 禁用 1 自动 自动 不存在 Gi0/14 禁用 1 自动 自动 不存在 Gi0/15 禁用 1 自动 自动 不存在 Gi0/16 禁用 1 自动 自动 不存在
任何指针将不胜感激。我在想正则表达式可能是有序的,但我需要一些帮助来构建它。我希望这不是太模棱两可。
删除了以前的更新并将其移至新线程