提取txt文件中所需要的的部分转为excel

import re
import xlwt

def txt_to_excel():
    streamname = []#包含所有流名字的列表
    allfps = []#包含所有fps值的列表
    run_time = []#每个对应的大循环次数
    framethread = []#对应的framethread的列表
    tilethread = []#对应的titlethread的列表
    #制作列表
    #打开txt文件as orifile
    with open("C:\\Users\\Hawk\\Desktop\\excel\\8bitoutput1_k6875.txt")as orifile:
        for line in orifile:#在orifile中进行循环
            if "stream:" in line: #判断line中是否有“stream"字符串
                delate_in_line = "!!!----- stream:  /sdcard/video/youtube/"
                value_new = line.replace(delate_in_line, "").replace("'\n", "").replace("  -----!!!","")#删去不要的部分
                streamname.append(value_new)#向streamname中添加值
            if "100.0%" in line:
                newline = re.findall("- \S+.\s",line)#返回“-”后的所有数字
                #newline返回的为一个列表,为[- 104.74/1784.02],以“/”为分割线,取第二部分删去,只保留“104.74”
                allfps.append(newline[0].replace(newline[0].split("/",2)[1],"").replace("- ","").replace("/",""))
            if"run times" in line:
                delate_in_line1 = "!!!----- run times:  "
                value_runtime = line.replace(delate_in_line1, "").replace("'\n", "").replace("  -----!!!","")
                run_time.append(value_runtime)
            if"framethread is:" in line:
                delate_in_line2 = "!!!----- framethread is:  "
                value_framethread = line.replace(delate_in_line2, "").replace("'\n", "").replace("  -----!!!","")
                framethread.append(value_framethread)
            if"tilethread is:" in line:
                delate_in_line3 = "!!!----- tilethread is:  "
                value_tilethread = line.replace(delate_in_line3,"").replace("'\n", "").replace("  -----!!!","")
                tilethread.append(value_tilethread)
    #生成表格
    workbook = xlwt.Workbook(encoding='utf-8')  # 创建workbook对象
    sheet1 = workbook.add_sheet(u"firsttime",cell_overwrite_ok=True)#创建一个工作簿,名为"firsttime"
    #将列表streamname中的值循环写入表格的第一列
    for i in range(len(streamname)):
        sheet1.write(i+1, 0, streamname[i])#i+1:每加一行,0:第1列,streamname[i]:写入的值
    for j in range(len(allfps)):
        sheet1.write(j+1, 1, allfps[j])
    for k in range(len(run_time)):
        sheet1.write(k+1, 2, run_time[k])
    for a in range(len(framethread)):
        sheet1.write(a+1, 3, framethread[a])
    for b in range(len(tilethread)):
        sheet1.write(b+1, 4, tilethread[b])

    #表格薄的抬头
    headers = ['streamname', 'fps', 'runtime', 'framethread', 'tilethread' ]
    for cols,header in enumerate(headers):#cols在这里指index,用headers的序列号表示第几列,然后进行循环
        sheet1.write(0, cols, header)

    workbook.save("result_k6875.xls")#保存excel文件
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值