You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现短横线分隔的交换机文本转CSV及报错解决

报错根因

你的拆分逻辑和原始文件格式不匹配:

  • 原始文件的设备信息块是用整行短横线-------------------------分隔的,不是空行,你用split('\n\n')完全没正确切分设备块,多个设备的字段行被堆到了同一个列表里,才会触发列数不匹配的报错
  • 就算块拆分正确,你直接把整行内容当单元格值,没有提取:后面的实际字段值,输出的内容也不符合要求
可直接运行的修复代码
import pandas as pd

# 读取原始文本文件
with open(r'file.txt', 'r', encoding='utf-8') as f:
    raw_text = f.read()

# 按短横线分隔符切分设备块,过滤空内容
device_blocks = [block.strip() for block in raw_text.split('-------------------------') if block.strip()]

record_list = []
for block in device_blocks:
    # 拆分单个设备块的每一行,过滤空行
    lines = [line.strip() for line in block.split('\n') if line.strip()]
    current_record = {}
    for line in lines:
        # 按第一个冒号拆分键和值,避免值本身包含冒号时拆分出错
        field_name, field_value = line.split(': ', 1)
        current_record[field_name] = field_value
    record_list.append(current_record)

# 生成DataFrame,调整列名和列顺序匹配输出要求
df = pd.DataFrame(record_list)
df = df.rename(columns={'Port ID (outgoing port)': 'Port ID'})
df = df[['Device ID', 'IP address', 'Platform', 'Interface', 'Port ID']]

# 预览结果
print(df)
# 导出为CSV文件,去掉pandas自动生成的索引列
df.to_csv('switch_device_info.csv', index=False)
效果说明

运行后会直接生成符合你要求格式的CSV文件,表头和每行数据都和你给出的期望输出完全一致,就算设备信息里的字段值包含冒号也能正常解析,不会出现拆分错误。

内容的提问来源于stack exchange,提问作者nerznerznerz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 08:12:21