Python读取txt文本数据,写进excel中

因为项目需要,需要统计训练的loss和acc,写进excel中,用手统计太累了。

方法:读取文档后,采用split分割出数据,然后用列表保存,再将列表内容写进excel中。

txt文本内容如下所示:

直接上代码,代码的value_title 需要自己手动更改:

# coding=UTF-8
import xlrd
import xlwt
from xlutils.copy import copy
import numpy as np 
 
def write_excel_xls(path, sheet_name, value):
    index = len(value)  # 获取需要写入数据的行数
    workbook = xlwt.Workbook()  # 新建一个工作簿
    sheet = workbook.add_sheet(sheet_name)  # 在工作簿中新建一个表格
    for i in range(0, index):
        for j in range(0, len(value[i])):
            sheet.write(i, j, value[i][j])  # 像表格中写入数据(对应的行和列)
    workbook.save(path)  # 保存工作簿
    print("xls格式表格写入数据成功!")
 
 
def write_excel_xls_append(path, value,j):
    index = len(value)  # 获取需要写入数据的行数
    print(index)
    workbook = xlrd.open_workbook(path)  # 打开工作簿
    sheets = workbook.sheet_names()  # 获取工作簿中的所有表格
    worksheet = workbook.sheet_by_name(sheets[0])  # 获取工作簿中所有表格中的的第一个表格
    # rows_old = worksheet.nrows  # 获取表格中已存在的数据的行数
    rows_old = 1  # 获取表格中已存在的数据的行数
    new_workbook = copy(workbook)  # 将xlrd对象拷贝转化为xlwt对象
    new_worksheet = new_workbook.get_sheet(0)  # 获取转化后工作簿中的第一个表格
    for i in range(0, index):
        print(i)
        print(value[i])
        new_worksheet.write(i+rows_old, j,  str(value[i]))  # 追加写入数据,注意是从i+rows_old行开始写入
    new_workbook.save(path)  # 保存工作簿
    print("xls格式表格【追加】写入数据成功!")
 
 
def read_excel_xls(path):
    workbook = xlrd.open_workbook(path)  # 打开工作簿
    sheets = workbook.sheet_names()  # 获取工作簿中的所有表格
    worksheet = workbook.sheet_by_name(sheets[0])  # 获取工作簿中所有表格中的的第一个表格
    for i in range(0, worksheet.nrows):
        for j in range(0, worksheet.ncols):
            print(worksheet.cell_value(i, j), "\t", end="")  # 逐行逐列读取数据
        print()
 
 
 


if __name__ == "__main__":
    file = open("MyNet.txt")
    Train_ET = []
    Train_TC = []
    Train_WT = []
    Valid_ET = []
    Valid_TC = []
    Valid_WT = []
    Train_loss = []
    Valid_loss = []
    for idx,line in enumerate(file.readlines()):
        if idx%2 != 0:
            Train_ET.append(line.split()[1])
            Train_TC.append(line.split()[3])
            Train_WT.append(line.split()[5])
            Valid_ET.append(line.split()[7])
            Valid_TC.append(line.split()[9])
            Valid_WT.append(line.split()[11])
        else:
            Train_loss.append(line.split()[2])
            Valid_loss.append(line.split()[4])

    # print(Train_ET)
    # print(Train_TC)
    # print(Train_WT)
    # print(Valid_ET)
    # print(Valid_TC)
    # print(Valid_WT)
    # print(Train_loss)
    # print(Valid_loss)

    book_name_xls = '测试值.xls'
    
    sheet_name_xls = '测试值表'
    
    value_title = [["Train_ET", "Train_TC", "Train_WT", "Valid_ET", "Valid_TC","Valid_WT","Train_loss","Valid_loss",],]

    write_excel_xls(book_name_xls, sheet_name_xls, value_title)
    write_excel_xls_append(book_name_xls, Train_ET, 0)
    write_excel_xls_append(book_name_xls, Train_TC, 1)
    write_excel_xls_append(book_name_xls, Train_WT, 2)
    write_excel_xls_append(book_name_xls, Valid_ET, 3)
    write_excel_xls_append(book_name_xls, Valid_TC, 4)
    write_excel_xls_append(book_name_xls, Valid_WT, 5)
    write_excel_xls_append(book_name_xls, Train_loss, 6)
    write_excel_xls_append(book_name_xls, Valid_loss, 7)

 最后生成的结果,很完美。

 

  • 11
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开始学AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值