txt文件长这样,其实是log文件
我想要把它变成这样方便matplotlib画图
代码实现
import re
import pandas as pd
"""
将txt数据转换为xls(表格)文件,方便后面做数据分析
"""
def txt_xls(filename,xlsname):
f = open(filename, encoding="UTF-8")
name = ['epoch', 'iter', 'l_g_pix', 'l_g_percep', 'l_g_gan', 'l_d_real', 'out_d_real', 'l_d_fake', 'out_d_fake']
epoch = []
iter = []
l_g_pix = []
l_g_percep = []
l_g_gan = []
l_d_real= []
out_d_real = []
l_d_fake = []
out_d_fake = []
list = []
while True:
#按行循环,读取文本文件
line = f.readline()
#去掉字符串中的“,”号与空格
line = line.replace(",","")
line = line.replace("epoch:", ' ')
#将字符串以空格分隔变成列表list,方便取值
line = line.split()
if not line:
break #如果没有内容,则退出循环
epoch.append(line[4])
iter.append(line[6])
l_g_pix.append(line[17])
l_g_percep.append(line[19])
l_g_gan.append(line[21])
l_d_real.append(line[23])
out_d_real.append(line[25])
l_d_fake.append(line[27])
out_d_fake.append(line[29])
list.append(epoch)
list.append(iter)
list.append(l_g_pix)
list.append(l_g_percep)
list.append(l_g_gan)
list.append(l_d_real)
list.append(out_d_real)
list.append(l_d_fake)
list.append(out_d_fake)
Dname = pd.DataFrame(index=name, data=list)
Dname = Dname.T
Dname.to_csv(xlsname, encoding='utf-8')
if __name__ == "__main__" :
filename = "E:\yan1\夜光\文档\sss.txt"
xlsname = "E:\yan1\夜光\文档\data.csv"
txt_xls(filename, xlsname)