#encoding=gbk import os import re import math from os import path''' 手动输入文件nmon文件路径,要截取的开始时间,结束时间 '''rootdir='E:\\pylianxi\\ceshi' #input("请输入文件路径:") start_time="14:46" #截取的开始时间 end_time="14:56" #截取的结束时间 print(rootdir)def avg(list_a): #求平均值函数avg_list=0.0float_item_list=[float(i) for i in list_a]for i in float_item_list:if not isinstance(i,(int,float)):print("列表中含有非数字!!")return Noneif len(float_item_list)>0:avg_list=sum(float_item_list)/len(float_item_list)#return round(avg_list,3)return ('%.2f'%avg_list)else:return Nonewrite_count=0 #记录是否是第一次生成要输出的文件aa.txt file_names=os.listdir(rootdir)for i in file_names:file_path=path.join(rootdir,i)if path.isfile(file_path) and ".nmon" in i:print(file_path)#file_record=re.findall(r"\w+",i)[0]+re.findall(r"\d+",i)[0]file_record=i[:6] #+i[4:6]#file_record=re.search(r"(\w+)-(\d+)",i).group(1)+re.search(r"(\w+)-(\d+)",i).group(2)print(file_record)#with open(file_path,'r',encoding='gbk') as fp:with open(file_path,'r',encoding='utf-8') as fp:data_all=fp.readlines()data_times={}for j in range(len(data_all)):if re.search(r"ZZZZ,T",data_all[j]):#data_times.append(data_all[j].split(',')[2])data_times[j]=data_all[j].split(',')[2]#print(data_times)start_row=0end_row=max(data_times.keys())for k,v in data_times.items():if start_time in v:start_row=kprint("循环中的start_row:",start_row)breakfor k,v in data_times.items():if end_time in v:end_row=kprint("循环中的end_row:",end_row)breakprint("校验前的start_row:",start_row)if start_row==0:print("未找到开始时间,从文件头开始")print("校验前的end_row:",end_row)if end_row==max(data_times.keys()):print("未找到结束时间,计算至文件结尾")performance_cpu=[]performance_mem=[]performance_disk_single=[]performance_disk=[]for n in data_all[start_row:end_row]:if re.search(r"CPU_ALL,T.*",n):#print(n.split(",")[5])performance_cpu.append(100-float(n.split(",")[5]))if re.search(r"MEM,T.*",n):performance_mem.append((float(n.split(",")[2])-float(n.split(",")[6])-float(n.split(",")[11]))*100/float(n.split(",")[2]))if re.search(r"DISKXFER,T.*",n):performance_disk_single=n.split(",")[2:]sum_disk=0.0for nn in performance_disk_single:sum_disk+=float(nn)performance_disk.append(sum_disk)#print(performance_cpu)#print(performance_mem)#print(performance_disk)cpu_avg=avg(performance_cpu)mem_avg=avg(performance_mem)disk_avg=avg(performance_disk)output_filename='aa.txt'output_path=path.join(rootdir,output_filename)if write_count==0:fp1=open(output_path,'w',encoding='gbk')fp1.write("")write_count+=1fp1.close()with open(output_path,'a+',encoding='gbk') as fp2:fp2.write(file_record+','+str(cpu_avg)+','+str(mem_avg)+','+str(disk_avg)+'\n')
nomn文件分析
转载于:https://www.cnblogs.com/xiaoxiao075/p/10186818.html
相关文章:

Vmware Workstation VMX 在资源管理器中杀不掉(虚拟机繁忙导致无法关机)
使用vmware的时候出现 虚拟机繁忙 的情况导致无法关机,然后使用任务管理器结束vmware进程,之后却发现在资源监视器中有一个VMware Workstation VMX进程始终关不掉,获得管理员权限去杀或者重启都没有用。 解决办法:打开win10的应用…
BGA封装芯片手工焊接攻略
转载于:http://blog.sina.com.cn/s/blog_70bb32080100lx1y.html 我毕设的很多板上都有BGA芯片,刚开始我觉得这东西实在是没有办法焊接。幸运的是我们研究所的另外一个研究室花了30多万买了个BGA焊接设备,我去蹭了2次,可惜要看人家…

40个常用的网站制作技巧
1. οncοntextmenu "window.event.returnValuefalse " 将彻底屏蔽鼠标右键 <table border οncοntextmenureturn(false)> <td> no </table> 可用于Table 2. <body onselectstart "return false "> 取消选取…

[Flash开发笔记] 如何在as2.0中使用自定义类事件
as2编程中,我们通常要处理一些异步加载的数据,有点类似ajax中的callback,即我们不知道何时数据才会返回,并且只有当数据返回时,执行我们定义的操作。在flash6及以前,我们会常常碰到从外部加载一张图片或一段…

.NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
.NET导出报表一般是采用导出Excel报表的方式输出内容。而这又分为两种方式:使用Excel模板方式和使用网页输出Excel格式两种。首先介绍简单的一种,网页输出Excel内容,这种不需要引用Excel的程序集。/**//// <summary> /// 报表导出辅…

从应用到内核查接口超时(中)
应用复现 接着上文 从应用到内核查接口超时(上) 继续排查导致接口超时的原因。 转载随意,文章会持续修订,请注明来源地址:https://zhenbianshu.github.io 。 Jdk 的 native 方法当然不是终点,虽然发现 Jdk、…

OpenCV 之 Mat 类
数字图像可看作一个数值矩阵, 其中的每个元素代表一个像素点,如下图所示: OpenCV 中,用 Mat 来表示该数值矩阵,它是很关键的一种数据结构,因为 OpenCV 中的大部分函数都和 Mat 有关: 有的是 Mat 的成员函数…

hbase shell编码显示中文
最近测试hbase shell,碰到个中文显示编码问题,最后通过Python解决了问题,具体操作如下: hbase(main):015:0* scan ‘fr_test_hbase:test_log1’ ROW COLUMNCELL 10001 columninfo:name, timestamp1500448006065, valuetmr\xE4\xB…

AJAX范例大搜罗(转载)
1.每天一个AJAX 该网站提供了很多非常酷的AJAX例子,号称是每天更新一个。 网址:http://www.ajaxcompilation.com/ 2.210个AJAX框架 一个不错的提供Ajax范例的网站,Ajax框架已更新至210个。 网址:http:…

Hbase的过滤器查询
hbase过滤器的比较运算符: LESS < LESS_OR_EQUAL < EQUAL NOT_EQUAL <> GREATER_OR_EQUAL > GREATER > NO_OP 排除所有 hbase过滤器的比较运算符: BinaryComparator 按字节索引顺序比较指定字节数组,采用Bytes.compareTo(…

python的进程
多进程概念: 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。python提供了非常好用的多线程包(multiprocessing),只需要定义一个函…

071204 晴
晚上打算把周末的剩余任务做完去池袋kitty店预习作文把电脑慢的原因查出来电脑传照片的方法一部电影一本书一本杂志单词 转载于:https://www.cnblogs.com/loverain/archive/2007/12/04/982210.html

区块链深度好文
http://www.huhangfei.com/post/4/转载于:https://www.cnblogs.com/vinplezhang/p/7325161.html

工作流引擎设计之退回任务定义
退回(Rollback Work Item)退回是针对本人(工作流参与者)的“待办任务”的操作,即参与者主动退回待办任务列表中的任务。为什么要退回?参与者接受任务后,发现不应由自己办理此任务或上一步的执行…

HBase常用API操作
文章目录第一步:创建maven工程,导入jar包第二步:开发javaAPI操作HBase表数据1、创建表myuser2、向表中添加数据3、查询数据3.1、 按照rowkey进行查询获取所有列的所有值3.2、 按照rowkey查询指定列族下面的指定列的值3.3、 通过startRowKey和…

Kanade's trio 2017多校#3 trie
求数组中i<j<k 并且ai^aj<aj^ak的三元组组数 枚举插入ak,让ak中每一位作为最高位,查找字典树内最高位不同的数字数量 注意把ak的每个前缀做一个bad标记 存储让这个前缀作为i可以与字典树内形成i,j对的个数,这些不满足i<j ai : 1…
使用VS2005进行代码覆盖率分析
下面通过一个简单的例子来讲解VS2005是如何做代码分析的(此处所做的代码分析是在单元测试之后进行的,其分析代码仍然使用上节的做和代码) 1、上节的原始代码和单元测试代码分别如下: //原始代码 using System; using System.Colle…

云计算时代的数据库运行
云计算时代的高可用数据库是可扩展、容错且与任何私有云或公共云兼容的数据库实例。它们旨在提供业务连续性,而不会因任何类型的硬件或网络故障而导致用户体验的影响。其核心设计原则是消除任何单点故障,并提供平稳的故障转移体验。 公共云和私有云使企业…

Java:在Bean中使用PropertyChangeSupport支持PropertyChangeListeners
本文主要介绍如何使用PropertyChangeSupport类来支持关联属性事件的触发。author: ZJ 2007-8-3Blog: [url]http://zhangjunhd.blog.51cto.com/[/url]JavaBean的属性与一般Java程序中所指的属性,或者说与所有面向对象的程序设计语言中对象的属性是一个概念࿰…

【做题】SRM701 Div1 Hard - FibonacciStringSum——数学和式&矩阵快速幂
原文链接 https://www.cnblogs.com/cly-none/p/SRM701Div1C.html 题意:定义"Fibonacci string"为没有连续1的01串。现在,给出\(a,b\),定义一个"Fibonacci string"的权值为\(x^a y^b\),其中\(x\)为0的个数&…

scala定义抽象类与抽象字段
抽象类 和Java语言一样,scala中也可以定义抽象类 定义: 如果类的某个成员在当前类中的定义是不包含完整的,它就是一个抽象类 不完整定义有两种情况: 1.方法没有方法体(抽象方法) 2.变量没有初始化…

kuangbin专题16B(kmp模板)
题目链接: https://vjudge.net/contest/70325#problem/B 题意: 输出模式串在主串中出现的次数 思路: kmp模板 在 kmp 函数中匹配成功计数加一, 再令 j nxt[j] 即可. 感觉有点奇怪的就是我拿 A 题的模板写这题居然会 tle, 而拿这题的模板写 A 题又没有 A 题的模板跑的快...可能…

[转]C#日期格式化 文档
日期转化一 为了达到不同的显示效果有时,我们需要对时间进行转化,默认格式为:2007-01-03 14:33:34 ,要转化为其他格式,要用到DateTime.ToString的方法(String, IFormatProvider),如下所示: usin…
探讨ASP.NET AJAX客户端开发技术
一、 简介 在ASP.NET AJAX组件开发中,存在许多环节有待我们深入挖掘。如何让ASP.NET AJAX服务端控件更有效地利用客户端脚本来为控件添加强大的客户端功能?如何更为方便地访问控件访问的资源,等等。实践证明,要实现最终的应用程序…

mfc 应用程序 语言进行本地化
在软件国际化的今天,资源从代码中独立出来,使在不同语言操作系统下能运行不同语言版本的程序,是很有意义的事. MFC 7.0 及更高版本提供对附属 DLL 的增强支持,该功能有助于创建针对多种语言进行本地化的应用程序。附属 DLL 是一个纯资源 DLL,它包含应用程…

前端优化系列之一:dns预获取 dns-prefetch 提升页面载入速度
问题:怎么做到dns域解析?用于优化网站页面的图片问题:怎么提升网站性能?dns域解析,是提升网站的一个办法。DNS Prefetch,即DNS预获取,是前端优化的一部分。 一般来说,在前端优化中与…

暑假集训D15总结
考试 日常爆炸 T1数据背锅,回天乏力 推了两个小时的T2竟然莫名RE,我也是服了 T3考试时就没读懂题,做个鬼啊 今天一直在写某奇怪的技术贴,竟然没有写题解(手动滑稽) 希望明天不要乱炸吧 博客 强行推荐一波自…

maven-assembly-plugin和maven-shade-plugin打包区别及弊端
使用 maven 插件 maven-shade-plugin 对可执行 java 工程及其全部依赖 jar 进行打包 maven-shade-pluginmaven-assembly-pluginmavenjar打包 现在基本上都是采用 maven 来进行开发管理,我有一个需求是需要把通过 maven 管理的 java 工程打成可执行的 jar 包&#x…

【Spark】Spark基础练习题(一)
题目: 1、创建一个1-10数组的RDD,将所有元素*2形成新的RDD 2、创建一个10-20数组的RDD,使用mapPartitions将所有元素*2形成新的RDD 3、创建一个元素为 1-5 的RDD,运用 flatMap创建一个新的 RDD,新的 RDD 为原 RDD 每…

Python(27)_字符串的常用的方法2
#-*-coding:utf-8-*-字符串操作s " bowen " # 从右边删 s1 s.rstrip() print(len(s1)) s2 s1.lstrip() print(len(s2)) 从右边删除元素,从左边删除元素,这个在以后项目中经常用到 二、计算个数 #-*-coding:utf-8-*-字符串操作s " bo…