求高手帮忙,想利用python提取文件夹下面所有文本中指定内容到excel

kwaerzw 2019-01-09 04:33:37
单个文本如下:
Receive:display memory
Memory utilization statistics at 2018-12-27 22:10:47 230 ms
System Total Memory: 8021212 Kbytes
Total Memory Used: 988720 Kbytes
Memory Using Percentage: 12%
State: Non-overload
Overload threshold: 95%, Overload clear threshold: 75%, Duration: 60s
----------------------------
ServiceName MemUsage(KB)
----------------------------
FEA 123150
CMF 106301
VLAN 22124
SYSTEM 14708
FEC 13386
IFM 12360
DEVICE 10387
IP STACK 4266
OSPF 3583
MSTP 2134
RM 1467
LOCAL PKT 1285
ARP 974
EUM 345
OAM 264
ND 240
STACKMNG 236
AAA 199
DHCP 183
FIBRESM 178
NETSTREAM 153
SLA 143
SMLK 101
TUNNEL 53
TNLM 50
PNP 37
RGM 34
ETRUNK 27
RBS 20
PEM 0
----------------------------
<dis1_sw1>
Receive:display cpu
CPU utilization statistics at 2018-12-27 22:10:48 475 ms
System CPU Using Percentage : 9%
CPU utilization for five seconds: 6%, one minute: 9%, five minutes: 6%.
Max CPU Usage : 56%
Max CPU Usage Stat. Time : 2015-05-21 21:32:22 866 ms
State: Non-overload
Overload threshold: 95%, Overload clear threshold: 75%, Duration: 1800s
---------------------------
ServiceName UseRate
---------------------------
SYSTEM 6%
DEVICE 3%
RBS 0%
ETRUNK 0%
EUM 0%
OAM 0%
RGM 0%
NETSTREAM 0%
DHCP 0%
TNLM 0%
MSTP 0%
RM 0%
SLA 0%
OSPF 0%
PNP 0%
FEC 0%
TUNNEL 0%
PEM 0%
IP STACK 0%
STACKMNG 0%
CMF 0%
LOCAL PKT 0%
VLAN 0%
AAA 0%
ARP 0%
FIBRESM 0%
FEA 0%
IFM 0%
ND 0%
SMLK 0%
---------------------------
CPU Usage Details
----------------------------------------------------------------
CPU Current FiveSec OneMin FiveMin Max MaxTime
----------------------------------------------------------------
cpu0 7% 6% 12% 7% 75% 2015-05-21 21:32:24
cpu1 11% 4% 9% 5% 80% 2017-11-16 17:00:22
cpu2 11% 6% 10% 6% 83% 2015-10-27 03:20:15
cpu3 10% 9% 8% 9% 83% 2015-05-21 21:32:24
----------------------------------------------------------------


提取内容:
1.Memory Using Percentage: 后面的百分比
2.System CPU Using Percentage : 后面的百分比


效果如下:
...全文
634 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
AcceptSocket 2019-01-20
  • 打赏
  • 举报
回复
如果那两行要取信息的文本所在行数是固定的话,还可以把遍历的过程省略掉试试。
胖子吴 2019-01-19
  • 打赏
  • 举报
回复 1
import os
import re
import xlrd,xlwt

def find_files(s_path):
    res = {}
    file_list = os.listdir(s_path)
    for filename in file_list:
        abs_filename = os.path.join(s_path,filename)
        if os.path.isfile(abs_filename):
            #打开文件
            with open(abs_filename,"r",encoding="utf8") as f:
                for line in f:
                    m1 = re.search("^Memory Using.*\s+(\d+%)$",line)
                    if m1:
                        m_data = m1.group(1)
                    m2 = re.search("^System CPU Using.*\s+(\d+%)$",line)
                    if m2:
                        cpu_data = m2.group(1)
            res[abs_filename] = (m_data,cpu_data)
        elif os.path.isdir(abs_filename):
            find_files(abs_filename)
        else:
            print("不是文件夹,也不是文件")

    return res

#创建excel 文件
def write_excel(data):
    writebook = xlwt.Workbook()  # 打开一个excel
    sheet = writebook.add_sheet('data')  # 在打开的excel中添加一个sheet
    # 添加表头
    sheet.write(0,0,'文件名')
    sheet.write(0, 1, '内存占比')
    sheet.write(0, 2, 'CPU占比')
    # 65535 最大行,可以自行拆分
    for index,item in enumerate(data):
        sheet.write(index+1,0,item)  # 文件名
        sheet.write(index+1,1,data[item][0])
        sheet.write(index+1,2,data[item][1])

    writebook.save("result.xls")

if __name__ == "__main__":
    s = r"E:\Computer\Python\Code\系统模块\test" #更换自己的路径
    res = find_files(s)
    write_excel(res)
jeky_zhang2013 2019-01-10
  • 打赏
  • 举报
回复
python 对这种文本处理的效率很高,研究下正则表达式
陈年椰子 2019-01-10
  • 打赏
  • 举报
回复
先帖个遍历文本文件代码


def seek_files(check_path, ext_key):
# 列出文件夹下所有ext_key 后缀的文件,不处理子目录
list_files = []
cur_list = os.listdir(check_path)
for i in range(0 ,len(cur_list)):
file_path = os.path.join(check_path, cur_list[i])
if os.path.isfile(file_path):
if cur_list[i].upper().find(ext_key.upper()) > 0:
list_files.append([cur_list[i], file_path])
return list_files

txt_list = seek_files(r'D:\demo','txt')
陈年椰子 2019-01-10
  • 打赏
  • 举报
回复
开个400分的贴应该可以完成代码。
kwaerzw 2019-01-10
  • 打赏
  • 举报
回复
能把具体代码写出来吗?
陈年椰子 2019-01-09
  • 打赏
  • 举报
回复
遍历目录下的所有文本文件名
打开文本文件
逐行读文本
如果包含 Memory Using Percentage , 取 百分比 , 记录到 列表
如果包含 System CPU Using Percentage , 取 百分比 , 记录到 列表
把列表保存到excel , (可以用pandas 也可以用openpyxl)


逻辑比较清晰呀。
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

37,739

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧