python读取Excel日志写入报告Excel


抓取日志内容

保证已有一个文件可供我们进行读取(防止误操作覆盖,做好备份)

创建一个新的excel

import xlsxwriter,os
uuid = 'UYQ9K21A19900093'  # 设备名称用于识别对应文件名
path = 'D:\code\SuperNight_v2.2.1\Execl_2021-11-25_18_16_46'     # 文件所在路径
out = path + os.sep + 'Memory_测试_{}.xlsx'.format(uuid)      # 输出文件路径及文件名
workbook = xlsxwriter.Workbook(out)      # 创建一个表格
workbook.close()     # 关闭该表格

  我们成功生成了一个Memory_测试_UYQ9K21A19900093.xlsx文件

创建sheet表

workbook = xlsxwriter.Workbook(out) # 创建表格 注意如果已存在会覆盖原表
sheet1 = workbook.add_worksheet(name="memory")  # 表1名称
sheet2 = workbook.add_worksheet(name="mem") # 表2名称

添加首行内容

headings = [u'次数', u'Native(MB)', u'Graphics(MB)', u'Code(MB)', u'TOTAL(MB)']  # 表头名称
for sheet in (sheet1, sheet2):  # 分别加入各个表头
     sheet.write_row('A1', headings)

读取表格

file = path + os.sep + 'meminfo_{}.xls'.format(uuid) # 文件位置
book = xlrd.open_workbook(file) # 读取模式打开xls表格
sheet = book.sheet_by_index(0)  # 通过索引顺序获取一个工作表
rowno = sheet.nrows # 读取表格的行数
print(sheet.cell(1, 4).value)   # 打印第二行,第五列数据

分析表格数据

total_list = [] # 用于装total列的数据
for k in range(1, rowno):
    total = round(int(sheet.cell(k, 4).value) / 1024, 2)    # 获取第二行的数据,换算单位,取小数点后2位
    total_list.append(total)    # 添加到列表中
avg_total = np.mean(total_list) # 计算列表的平均值