【Python】Python客户端开发
前言: 工作需求,需要开发一个处理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 的名字
转载自:https://juejin.cn/post/7143498464235061262