##游戏运行或系统运行中往往会遇到某些词会在哪些配置表中出现,或者策划想改个配置,又不能够确定到底有哪些表会用到,避免报错
这个exe可以进行多表查询
import os,xlrd,re
#todo:制作图形ui
def addName():
f_dir = sys.argv[1]
file_list = os.listdir(sys.argv[1])
booksheet = workbook.sheet_by_index(0)
p = list()
for row in range(booksheet.nrows):
col_data = []
for col in range(booksheet.ncols):
cel = booksheet.cell(row,col)
val = cel.value
col_data.append(val)
p.append(col_data)
return p
def file_name(file_dir):
excel = []
for root, dirs,files in ps.walk(file_dir):
for file in files:
if os.path.splitext(file)[1]== '.xls' or os.path.splitext(file)[1] == '.xlsx':
excel.append(file)
return excel
def search_word_in_file(word,files,root_dir,n = []):
result = []
for file in files:
tmp_file = read_xls(root_dir +"\\"+ str(file))
for match in match_word_list:
result.append(str(match)+"\n")
tmp_file = []
return result
def search_word(word,file,filename):
pattern_attr = re.compile(r""+ word)
i = 1
match_word_list = []
for row in file:
k = 1
for cell in row:
try:
tmp = pattern_attr.findall(cell)
if(tmp):
match_word_list.append([filename,i,k,cell])
pass
except TypeError:
pass
k+= 1
i+= 1
return match_word_list
Python GUI 编程(Tkinter)创建图形界面
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
from tkinter import messagebox
import xlrd
import os
import searchword
class czpzb:
"""docstring for czpzb"""
def __init__(self):
pass
def mainview(self):
self.file_name = ""
mssage = Tk()
mssage.title('配置表检查')
mssage.geometry('780x600+400+250')
mssage.resizable(width = False,height = False)
def get_file_name():
self.file_name = filedialog.askdirecctory()
if self.file_name == "":
messagebox.showinfo('哥',"选择配置表目录")
else:
filename['state'] = NORMAL
filename.delete(0,'end')
filename.insert(0,self.file_name)
filename['state'] = DISABLED
def start_check():
if self.file_name == "":
messagebox.showinfo('哥',"选择配置表目录")
else:
messagebox.showinfo('哥',"要有耐心,抽根烟等等呗")
getnode = search.get() #获取输入的内容
excel_file = searchword.file_name(self.file_name)
result = searchword.search_word_in_file(getnode,excel_file,self.file_name)
#下面是显示框
textnode = Text(mssage,width = 60,height = 25,wrap = 'node')
textnode.grid(column = 1, row = 3)
#下面添加滚动条
#创建横向滚动条
vbar = ttk.Scrollbar(mssage,orient=VERTICAL,command=textnode.yview)
textnode.configure(yscrollcommand=vbar.set)
vbar.grid(column=1,row=3,sticky=N+S+E)
#创建横向滚动条
vbar = ttk.Scrollbar(mssage,orient=HORIZONTAL,command=textnode.xview)
textnode.configure(xscrillcommand=vbar.set)
vbar.grid(column=1,row=4,sticky=E+W)
textnode.delete(0.0,END)# 赋值前先初始化
for i in result:
textnode.insert(END,i)
textnode['state'] = DISABLED
#浏览文件筐
ttk.Label(mssage,text="配置表地址:").grid(column=0,row=0)
filename=Entry(mssage,width=60,state='disabled')
filename.grid(column=1,row=0,ipady=8)
file_name=ttk.Button(mssage,text='浏览文件',width=10,command=get_file_name)
file_name.grid(column=2,row=0,ipady=8)
#搜索框
ttk.Label(mssage,text="请输入搜索内容:").grid(column=0,row=1)
search=Entry(mssage,width=60)
search.grid(column=1,row=1,ipady=8)
checkbtn=ttk.Button(mssage,text='开始检查',width=15,command=start_check)
checkbtn.grid(column=1,row=2,ipady=10)
mssage.mainloop()
打包
cxfreeze,pyinstaller,py2exe三种方式
目前网上能获取的免费的Python打包工具主要有三种:py2exe、PyInstaller和cx_Freeze。其中PyInstaller最新版只支持Python2.7,py2exe计划开发支持python3.x版本,但是目前还没有完成。只有cx_Freeze支持python3.X版本,也支持python2.X版本。