|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
最近老是整报告,搞了个半自动出报告的玩意。本来想用pack,还是搞得不清楚最后还是选择grid,相对简单点
- """
- 1.选择文件夹,获取文件夹中的txt文件
- 2.读取txt文件的内容(addr,addr2(hex),description,value)
- 3.上一步获取的txt文件内容的value值实际是十六进制
- 4.选择要使用的文件
- 5.选择报告模板(*.xlsx),并将第四步选择的文件的value值以0x00的格式保存到报告模板
- """
- import tkinter as tk
- from tkinter import filedialog
- import os
- import openpyxl
- transresult={}
- def filedirselect():
- global filenamelist
- global filedir
- filedir = filedialog.askdirectory() #选择数据位置
-
- filenamelist=[filename for filename in eo.listdir(filedir) if filename.endswith(".txt")]
- #filenamelist= os.listdir(filedir)
- print(filenamelist)
-
- if filedir != "":
- entry1.delete(0,'end')
- entry1.insert(0,filedir)
-
- pass
- def fileanalyse(): #分析测试数据
- filenum=len(filenamelist)
- if entry2.get() !="":
- entry2.delete(0,'end')
- entry2.insert(0,filenamelist)
-
- for i in range(filenum):
- filename =filedir+'/'+filenamelist[i]
- transresult[filenamelist[i]]=filetrans(filename) #页名做键,页的registervalue列表做值 字典
-
- pass
- def filetrans(filename): #对测试的txt数据进行转换
- registervalue=[]
- file=open(filename,'r')
- for each_line in file:
- each_linelist=each_line[:-1].split('\t')
- registervalue.append('0x'+each_linelist[-1])
- file.clegisee()
- return registervalue
- pass
- def modefileselect():
- file=filedialog.askopenfilename()
- if entry4.get() !='' and file !='':
- entry4.delete(0,'end')
- entry4.insert(0,file)
- pass
- def writereport():
- reportname=entry4.get() #获取报告模板位置和名称
- pagenamelist=entry3.get().split(',') #获取需要处理的page列表
- numofpage=len(pagenamelist)
- wb=openpyxl.load_workbook(reportname) #打开报告模板文件,为下一步的写入做准备
- for each in pagelist:
- wsheet=wb.get_sheet_by_name(each) #打开要处理的page
- i=2
- while i<130: #更新报告中对应sheet中C列的值
- wsheet['C'+str(i)].value=transresullt[each+'.txt'][i-2]
- i +=1
- wb.save(reportname)
-
- pass
- root = tk.Tk(className='Code Validation trans')
- root.geometry("550x250+200+150")
- label1= tk.Label(root,text='数据位置',width=6)
- label1.grid(row=0,rowspan=1,column=1,padx=10,pady=15)
- #label1.pack(side='left',padx=10,pady=1)
- entry1=tk.Entry(root,width=36,font=6)
- entry1.grid(row=0,column=2,columnspan=3,padx=10,pady=15,sticky='n')
- #entry1.pack(side='left',padx=10,pady=1)
- button1=tk.Button(root,text='浏览...',command=filedirselect,width=6)
- button1.grid(row=0,column=5,columnspan=1,padx=10,pady=15)
- #button1.pack(side='left',padx=10,pady=1)
- button2=tk.Button(root,text='数据解析',command=fileanalyse,width=6)
- button2.grid(row=0,column=6,columnspan=1,padx=10,pady=15)
- #button2.pack(side='left',padx=10,pady=1)
- label2= tk.Label(root,text='text文件',width=6)
- label2.grid(row=1,rowspan=1,column=1,padx=10,pady=15)
- #label2.pack(side='top',padx=10,pady=1)
- entry2=tk.Entry(root,width=60)
- entry2.grid(row=1,column=2,columnspan=5,padx=10,pady=15,sticky='n')
- #entry2.pack(side='bottom',padx=10,pady=1)
- label3= tk.Label(root,text='选择text',width=6)
- label3.grid(row=2,rowspan=1,column=1,padx=10,pady=15)
- #label2.pack(side='top',padx=10,pady=1)
- entry3=tk.Entry(root,width=60)
- entry3.grid(row=2,column=2,columnspan=5,padx=10,pady=15,sticky='n')
- #entry2.pack(side='bottom',padx=10,pady=1)
- label2= tk.Label(root,text='选择模板',width=6)
- label2.grid(row=4,rowspan=1,column=1,padx=10,pady=15)
- #label1.pack(side='left',padx=10,pady=1)
- entry4=tk.Entry(root,width=36)
- entry4.grid(row=4,column=2,columnspan=3,padx=10,pady=15,sticky='n')
- #entry1.pack(side='left',padx=10,pady=1)
- button3=tk.Button(root,text='浏览...',command=modefileselect,width=6)
- button3.grid(row=4,column=5,columnspan=1,padx=10,pady=15)
- #button1.pack(side='left',padx=10,pady=1)
- button4=tk.Button(root,text='确定',command=writereport,width=6)
- button4.grid(row=4,column=6,columnspan=1,padx=10,pady=15)
- #button2.pack(side='left',padx=10,pady=1)
复制代码 |
-
|