最近疫情原因,班级每天都要筛选未打卡人员,每次都手动操作太麻烦了。遂写下如下的程序,并且生成了exe可执行文件。
import openpyxl import pyperclip # 1.加载excel表 path="C:/Users/18768/Desktop/导出数据.xlsx" #此处填写excel存放地址,我是放到桌面了。 workbook = openpyxl.load_workbook(path) sheet_names = workbook.sheetnames sheet0 = workbook[sheet_names[0]] #加载第一个数据表 # 2.筛选数据表中【班级】的数据 Datas = [] for row in sheet0.rows: lines = [cell.value for cell in row] Datas.append(lines) print(len(Datas)) me1= [] for line in Datas: if line[37] == '班级1' or line[37] == '班级2': me1.append(line[1]) #人名添加到列表中 print(len(me1)) print(me1) namelist=''' 小明 张三 李四 ''' correct_list = namelist.split( ) a= set(correct_list).symmetric_difference(set(me1)) #查找未打卡名单 print(a) answer = ' '.join(a) pyperclip.copy(answer) #得到的人名自动存在剪贴板上
本方法参考了这篇博文https://blog.csdn.net/Python_kele/article/details/118495091。
有两个坑需要注意:
①但该文章有个细节没说清楚。就是创建了虚拟环境后,必须在该环境中也安装pyinstaller库,否则打包后发现还是用的默认环境的库,文件还是很大。
②我这边创建虚拟环境后发现pip还是用的全局pip,当前虚拟环境并没有pip。于是用该方法安装对应版本pip
conda create -n random_env python=3.8.8 pip=21.0.1
最后的总结一下完整步骤:
# 将以上内容打包成exe文件 ''' conda create -n random_env python=3.8.8 pip=21.0.1 conda activate random_env pip install pyinstaller pyperclip openpyxl 转到程序所在的文件夹之后 pyinstaller -F -w --icon=favicon.ico choice_stu_no_register.py --noconsole '''
2022-04-08 10:40:35
添加了启动文件选择对话框的内容,只需添加以下内容即可
import tkinter.filedialog # 0. 选择文件 path = tkinter.filedialog.askopenfilename()