weixin_39721336 2023-09-23 22:33 采纳率: 77.8%
浏览 11
已结题

如何用python把TXT文档中的特定字符提取出来放到excel中

想把下面txt文档中的2001:3001:700:80::1 这些个IP地址 0000-5e00-0101mac地址放到一个表格中。

> IPv6 Address :2001:3001:700:80::1                           
Link-layer   : 0000-5e00-0101                     State     : REACH             
Interface    : MEth0/0/0                          Age       : 2                 
VLAN         : -                                  CEVLAN    : -                 
VPN name     : NMS_tenant                     Is Router : TRUE              
Secure FLAG  : UN-SECURE                          Nickname  : -                 
Source IP    : -                                                                
Destination IP: -                                                               
VNI          : -                                  BD        : -                 

IPv6 Address : 2001:3001:700:80::16                                             
Link-layer   : 94b2-714e-e758                     State     : REACH             
Interface    : MEth0/0/0                          Age       : 16                
VLAN         : -                                  CEVLAN    : -                 
VPN name     : NMS_tenant                     Is Router : TRUE              
Secure FLAG  : UN-SECURE                          Nickname  : -                 
Source IP    : -                                                                
Destination IP: -                                                               
VNI          : -                                  BD        : -        

带该变成这个样子,这里面有很多上面的数据,不仅仅这么多

img


捣鼓了好长时间还是不行

import re
import openpyxl
from openpyxl import Workbook
ipv6_re=re.compile(r"IPv6 Address :(.*)")
mac_re=re.compile(r"Link-layer   :(.*)\s*State.*")
vpn_re=re.compile(r"VPN name     : (.*)")
outinterface_re=re.compile(r"Interface    :(.*)")
wb=Workbook()
ws=wb.active
with open ("ST-EOR.txt") as f:
    for line in f:
        data=[i for i in mac_re.findall(line) or ipv6_re.findall(line) or outinterface_re.findall(line) or vpn_re.findall(line)]
        ws.append(data)
        
wb.save("first.xlsx")
wb.close

麻烦补充下我写的东西,万分感谢!
还有一个问题,我想用列表的形式把数据写到excel中。那种方式更方便一些?字典吗?可以字典还没学!

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-24 08:20
    关注

    【以下回答由 GPT 生成】

    我可以为您提供一个解决方案来将TXT文档中的特定字符提取到Excel中。以下是具体步骤:

    1. 首先,我们需要安装两个Python库,分别是openpyxlregex。您可以使用以下命令安装它们:
    pip install openpyxl
    pip install regex
    
    1. 确保您的TXT文件中的特定数据是按照固定的格式排列的,就像您提供的示例一样。每个特定数据块之间应该有一个空行。

    2. 创建一个新的Excel文件,并在其中创建一个工作表。您可以使用以下代码来完成这个任务:

    from openpyxl import Workbook
    
    # 创建Workbook对象
    wb = Workbook()
    
    # 选择默认的工作表
    ws = wb.active
    
    # 设置工作表的标题行
    ws.append(["IPv6地址", "Mac地址", "VPN名称"])
    
    # 保存Workbook到文件
    wb.save("output.xlsx")
    
    1. 使用openpyxl库中的load_workbook函数加载创建的Excel文件,然后将提取的数据写入工作表中。请使用以下代码:
    from openpyxl import load_workbook
    import regex as re
    
    # 加载Excel文件
    wb = load_workbook("output.xlsx")
    
    # 选择默认的工作表
    ws = wb.active
    
    # 打开TXT文件
    with open("data.txt", "r") as file:
        # 读取文件内容
        file_contents = file.read()
    
        # 使用正则表达式提取特定数据
        ipv6_addresses = re.findall("IPv6 Address : ([^\n]*)", file_contents)
        mac_addresses = re.findall("Link-layer   : ([^\n]*)", file_contents)
        vpn_names = re.findall("VPN name     : ([^\n]*)", file_contents)
    
        # 将数据写入Excel文件
        for i in range(len(ipv6_addresses)):
            ws.append([ipv6_addresses[i], mac_addresses[i], vpn_names[i]])
    
    # 保存Workbook到文件
    wb.save("output.xlsx")
    
    1. 运行上述代码,并确保将文件名设置为正确的TXT文件名和Excel文件名。

    2. 运行完代码后,查看Excel文件中的工作表,您将在其中找到提取的特定数据。

    请注意,您需要将文件名更改为实际的文件名,并确保TXT文件和代码文件在同一个目录中。

    希望这个解决方案能够帮助到您。如果有任何问题,请随时提问。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 10月3日
  • 已采纳回答 9月25日
  • 创建了问题 9月23日

悬赏问题

  • ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析