实现的功能:
(1)parse_procrank:解析log 文件中的利用获取的memory 信息,并将这些信息存至excel文件
(2)parse_memory:进行memory 占用计算
(3)parse_cpu:进行cpu consump计算
#!/usr/bin/python
#coding=utf-8
import openpyxl
import xlwt
import xlrd
import re
import os
import sys
log_file = r'test.txt'
xlsx_path = r'procrank.xlsx'
result_path = r'result.txt'
sheet_name = [r'procrank', r'cpu_info', r'memory_info', r'result']
def write_to_file(filename, data):
fp = open(filename, 'a')
fp.write(data)
fp.close()
def parse_cpu():
print('parse_cpu start')
xlsx = xlrd.open_workbook("procrank.xlsx")
table = xlsx.sheet_by_index(1)
total = 100
#raws = table.max_row
#空列表,用以存储数据
all_used = []
all_alexa = []
#循环,读取表格的每个单元格
for n in range(1, table.nrows):
idle = table.cell_value(n, 3)
tmp = "".join(re.findall(r"\d+\.?\d*",idle))
if tmp != "100":
#开始提取我们需要的数据并存储到字典
#将上面字典的每一项以追加的方式追加到空列表all_data
used = 100 - int(tmp)
all_used.append(used)
tmp2 = table.cell_value(n, 13)
if tmp2 != "":
tmp3 = "".join(re.findall(r"\d+\.?\d*",tmp2))
alexa = int(tmp3)
all_alexa.append(alexa)
#开始进行计算
alexa_max = max(all_alexa)
cpu_max = max(all_used)
a_len = len(all_used)
a_used = sum(all_used)
cpu_avreage = a_used/a_len
b_len = len(all_alexa)
b_used = sum(all_alexa)
alexa_avreage = b_used/b_len
result = "cpu total: %d%% cpu average: %d%% cpu max: %d%%\n" % (total, cpu_avreage, cpu_max)
print (result)
write_to_file(result_path, result)
result = "alexa_max: %d%% alexa_av