【发布时间】:2022-01-13 20:18:01
【问题描述】:
我有一个我一直在处理的脚本,我从文本文件中提取信息并将其输出到具有特定列标题的 CSV 文件。 我在使用输出写入正确的列时遇到问题。它不是让“interface_list”在“Interface”下写入所有端口名称,而是将它们全部写入行中。我的其他列表也有同样的问题。
这是输出在 csv 文件中的样子:
电流输出
但我希望它看起来像这样:
期望的输出
我对python有点陌生,但一直在通过在线搜索学习。
谁能帮助我了解如何让我的列表进入各自的列?
这是我的代码:
import netmiko
import csv
import datetime
import os
import sys
import re
import time
interface_pattern = re.compile(r'interface (\S+)')
regex_description = re.compile(r'description (.*)')
regex_switchport = re.compile(r'switchport (.*)')
with open('int-ports.txt','r') as file:
output = file.read()
with open('HGR-Core2.csv', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow(['Interface', 'Description', 'Switchport'])
interface_iter = interface_pattern.finditer(output)
interface_list = []
for interface in interface_iter:
interface_list.append(interface.group(1))
writer.writerow(interface_list)
description_iter = regex_description.finditer(output)
description_list = []
for description in description_iter:
description_list.append(description.group(1))
writer.writerow(description_list)
switchport_iter = regex_switchport.finditer(output)
switchport_list = []
for switchport in switchport_iter:
switchport_list.append(switchport.group(0))
f.close()
谢谢。
【问题讨论】:
-
请提供minimal reproducible example 其他人可以运行并包含可用于测试的文本格式的示例输入数据。
-
此外,我建议改用 Pandas 数据框。如果需要,它将允许您轻松操作它,然后您可以使用内置函数将其导出到 csv?
-
这是我正在阅读的 int-ports.txt 文件中的一些文本: interface GigabitEthernet7/10 description test1 switchport trunk native vlan 999 switchport mode trunk !接口 GigabitEthernet7/11 描述 test2 - Storage switchport access vlan 610 switchport mode access speed auto 1000 flowcontrol receive on !接口 GigabitEthernet7/12 说明 未使用 switchport access vlan 99 switchport mode access speed auto 1000 !接口 GigabitEthernet7/13 说明。 switchport access vlan 99 switchport mode access speed auto 1000
标签: python export-to-csv