吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 616|回复: 3
收起左侧

[求助] Python中关于textfsm无法匹配到对应数据的问题

[复制链接]
baigei2333 发表于 2023-7-22 22:41
本帖最后由 baigei2333 于 2023-7-23 09:40 编辑

各位大佬好,本人新手小白,最近在用textfsm匹配txt文本中的数据,发现一个问题,单独的两个变量能匹配到相应的数据,增加到5-6个变量以后反而匹配不到数据了,求大佬指点。。
System CPU Using Percentage :  32%和Memory Using Percentage: 48%,现在主要想匹配这两行数据中的32%和48%

下面是我使用的待匹配原始数据:
<GD000HWSW58-DW282>display esn
ESN of slot 1: 1233332GGU8TGC000772

<GD000HWSW58-DW282>display version
Huawei Versatile Routing Platform Software
VRP (R) software, Version 8.150 (CE5855EI V200R002C50SPC800)
Copyright (C) 2012-2017 Huawei Technologies Co., Ltd.
HUAWEI CE5855-48T4S2Q-EI uptime is 652 days, 21 hours, 54 minutes
Patch Version: V200R002SPH032

<GD000HWSW58-DW282>display patch-information
Patch Package Name    :flash:/CE5855EI-V200R002SPH032.PAT
Patch Package Version :V200R002SPH032
Patch Package State   :Running   
Patch Package Run Time:2023-01-09 19:06:23+08:00

<GD000HWSW58-DW282>display cpu
CPU utilization statistics at 2023-03-06 19:21:38 496 ms
System CPU Using Percentage :  32%
CPU utilization for five seconds: 30%, one minute: 26%, five minutes: 24%.
Max CPU Usage :                76%
Max CPU Usage Stat. Time : 2021-09-02 16:24:59 002 ms
State: Non-overload
Overload threshold:  90%, Overload clear threshold:  75%, Duration:  480s

<GD000HWSW58-DW282>display memory
Memory utilization statistics at 2023-03-06 19:21:40 011 ms
System Total Memory: 2018152 Kbytes   
Total Memory Used: 988684 Kbytes     
Memory Using Percentage: 48%               
State: Non-overload      
Overload threshold:  95%, Overload clear threshold:  75%, Duration:    2s

单独匹配CPU、内存信息

单独匹配CPU、内存信息

textfsm在线测试匹配详情

textfsm在线测试匹配详情

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

小炜king 发表于 2023-7-23 01:37
根据你提供的待匹配原始数据,你可以使用TextFSM模板来提取所需的数据。首先,你需要创建一个包含模板内容的文件,例如template.txt,然后编写模板以匹配你想要提取的数据。下面是一个示例模板:

[Python] 纯文本查看 复制代码
Value System_CPU_Percentage (\d+)%
Value Memory_Percentage (\d+)%

Start
  ^System CPU Using Percentage :  ${System_CPU_Percentage}
  ^Memory Using Percentage: ${Memory_Percentage}%

接下来,你可以使用TextFSM库加载模板并将其应用于原始数据。以下是使用TextFSM进行匹配的示例代码:

python
[Python] 纯文本查看 复制代码
import textfsm

# 加载模板
with open('template.txt') as template_file:
    template = textfsm.TextFSM(template_file)

# 加载待匹配的原始数据
with open('data.txt') as data_file:
    data = data_file.read()

# 应用模板并提取数据
result = template.ParseText(data)

# 提取匹配到的数据
system_cpu_percentage = result[0][0]
memory_percentage = result[0][1]

# 打印结果
print("System CPU Percentage:", system_cpu_percentage)
print("Memory Percentage:", memory_percentage)

请将上述示例代码保存为一个Python脚本,并将模板文件保存为template.txt,原始数据保存为data.txt。然后运行脚本,将输出匹配到的数据:

[Python] 纯文本查看 复制代码
System CPU Percentage: 32
Memory Percentage: 48

这样,你就可以成功提取出System CPU Using Percentage 和 Memory Using Percentage 的值。
wan456 发表于 2023-7-23 05:26
先限定查找范围
同时可以提高运行效率
提高匹配精度
就能达到想要效果
 楼主| baigei2333 发表于 2023-7-23 09:32
小炜king 发表于 2023-7-23 01:37
根据你提供的待匹配原始数据,你可以使用TextFSM模板来提取所需的数据。首先,你需要创建一个包含模板内容 ...

大佬,我的意思可能你没明白,我现在是单个去匹配这两个CPU、内存数据能够匹配到,然后你看我上面在线测试定义了其他的textfsm变量,把那些变量全部一起匹配就匹配不到CPU、内存的数据了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 15:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表