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

如何用Python正则方法拆分交换机配置文件为自定义命名的多份文本文件

Cisco配置文件拆分代码修改方案

现存代码问题

  • 使用非捕获组的正则拆分,无法提取匹配到的show命令作为文件名
  • 拆分后第一个元素为首个show命令之前的无效内容,会生成空文件
  • 外层冗余的for command in output逻辑无意义,会导致拆分逻辑重复执行

修复后代码

import re

# 此处filename为你遍历目录获取的单个配置文件名
if filename.endswith(".txt"):
    with open(filename, 'r', encoding='utf-8') as file:
        content = file.read()
    
    # 带捕获组的正则拆分,返回结果会包含匹配到的show命令
    split_res = re.split(r'(show\s+(?:running-config|version|inventory))', content, flags=re.IGNORECASE)
    
    # 跳过首个无效空内容,步长为2遍历:奇数位置为命令,偶数位置为对应返回结果
    for idx in range(1, len(split_res), 2):
        raw_cmd = split_res[idx].strip()
        output_content = split_res[idx+1]
        # 替换命令中的空格避免文件名兼容性问题,不需要可直接删除该行用raw_cmd
        safe_cmd = raw_cmd.replace(" ", "_")
        file_prefix = filename.rsplit(".", 1)[0]
        new_filename = f"{file_prefix}$$$safe_cmd$$$.txt"
        with open(new_filename, 'w', encoding='utf-8') as f:
            f.write(output_content)

可选调整项

  • 若不需要过滤内容首尾空行,删除strip()方法即可
  • 若允许文件名存在空格,直接用raw_cmd替换代码中的safe_cmd
  • 可根据你的文件实际编码调整encoding参数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 18:48:02