前言: 工作需求,需要开发一个处理Execl数据并转换为Mike格局的小工具,因而选定了Python+openpyxl+re+
pandas作为自己的开发框架,tkinter作为GUI展现框架,整个系统开发时间在半响左右
技术选型
openpyxl和pandas都是处理execl的第三方库,pandas功用较openpyxl相比更强大,本项目中的需要对execl表格进行排序,openpyxl只能增加排序头并不能对表格履行真正的排序操作,但是pandas能够。但是在读取方面,openpyxl功率会更快一些,所以我采用了二者相结合的形式。
import openpyxl
import re
import pandas as pd
数据预处理
pandas对表格进行排序并保存
df = pd.read_excel(execlFileName, sheet_name =sheetName)
df_value = df.sort_values(by=[dmmc, rdis], ascending=True) # 假如"dmmc"数据相同再按照"rdis"进行摆放
# 保存文件
writer = pd.ExcelWriter(execlFileName)
df_value.to_excel(writer, sheet_name =sheetName, index=False)
writer.save()
openpyxl打开excel并获取表单目标
# 1):打开excel:创立表目标
wb = openpyxl.load_workbook(filename=execlFileName)
# 2):获取表单:获取表单目标
sheet = wb[sheetName]
保存txt
将txt保存至OUTPUT_FULL_FILE_PATH途径下
with open(OUTPUT_FULL_FILE_PATH, 'w') as f:
f.write(text)
python GUI
tkinter新建窗口目标
window = tk.Tk() # 创立一个窗口目标
window.title('gisConvertToMike') # 给窗口命名
window.geometry('500x250') # 定义窗口的长宽,geometry方法中传入字符串参数,字符串中应为长x宽(Note:x是小写字母x)
GUI页面目标
# label
l = tk.Label(window, text='请输入初始字符:', font=('Arial', 12))
l.pack()
# text
e = tk.Entry(window, textvariable=entryVar, show=None) # show = None:输入字符可见, show = '*':
e.pack()
# label
l = tk.Label(window, text='请导入gis格局Execl:', font=('Arial', 12))
l.pack()
python打包
我是运用anaconda里面的python环境进行开发的,打包需要如下几个过程
# 1)运用Anaconda Prompt打开,并进入开发所用环境
activate py39
# 2)进入py文件所在目录
cd D:/XXX/XXX
# 3)履行打包指令,指定convert.ico为图标
pyinstaller -i="./convert.ico" -F -w main.py
pyinstaller打包指令参数:
-F:打包后只生成单个exe格局文件
-D:默许选项,创立一个目录,包括exe文件以及很多依赖文件;
-c:默许选项,运用控制台(便是类似cmd的黑框);只对 Windows 有用
-w:不运用控制台;这在GUI界面时非常有用。不过假如是指令行程序的话那就把这个选项删除吧!只对 Windows 有用
-p:增加搜索途径,让其找到对应的库;用途径切割符 (Windows 运用分号 ,Linux 运用冒号 ) 切割 , 指定多个目录 . 也能够运用多个 -p 参数来设置多个导入途径,让pyinstaller自己去找程序需要的资源,和运用 PYTHONPATH 作用类似
-i:改动生成程序的icon图标。只在windows下生效
-o DIR, –out=DIR 指定 spec 文件的生成目录 , 假如没有指定 , 而且当时目录是 PyInstaller 的根目录 , 会自动创立一个用于输出 (spec 和生成的可履行文件 ) 的目录 . 假如没有指定 , 而当时目录不是 PyInstaller 的根目录 , 则会输出到当时的目录下
–add-data <SRC;DEST or SRC:DEST> 增加资源文件(Windows运用;分号,大多数Unix运用:冒号,注意后边还有一个.点)能够增加dll ico等资源文件
-v FILE, –version=FILE 将 verfile 作为可履行文件的版本资源 ( 只对 Windows 系统有用 )
-n NAME, –name=NAME 可选的项目 ( 发生的 spec 的 ) 姓名 . 假如省掉 , 第一个脚本的主文件名将作为 spec 的姓名