前言: 工作需求,需要开发一个处理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 的名字
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码免费领取【保证100%免费
】