Python 开发桌面小工具,让代码替我们干重复的工作。

本文介绍了如何使用Python的Tkinter库创建桌面应用,实现Excel文件的透视表生成和数据筛选,以及如何通过pyinstaller打包成exe文件。还提到了使用虚拟环境解决exe文件过大问题和提供Python学习资源的分享。
摘要由CSDN通过智能技术生成

安装三方依赖库

创建桌面窗口,这里使用 tkinter,它是 Python 自带的 GUI 库,安装后即可使用。

pip install tkinter

使用 pyinsatller 将程序打包成 exe,好处是不需要将代码部署到服务器,直接将打包好的 exe 发给对方,就能直接使用,对于这种小而轻的功能非常友好。

pip install pyinstaller

代码实现

Excel 文件生成透视表和筛选数据,文件名:excel_to_pivot.py

import pandas as pd

import numpy as np

class ExcelToPivot(object):

def init(self, filename, file_path):

self.file_name = filename

self.file_path = file_path

“”"

excel自动转透视表功能

返回透视结果

“”"

def excel_Pivot(self):

print(self.file_path)

data = pd.read_excel(self.file_path)

data_pivot_table = pd.pivot_table(data, index=[‘供应商名称’, ‘月份’], values=[“入库金额”], aggfunc=np.sum)

return data_pivot_table

“”"

按条件筛选,并保存

“”"

def select_data(self, name, month):

data_pivot_table = self.excel_Pivot()

data_new = data_pivot_table.query(‘供应商名称 == [“{}”] & 月份 == {}’.format(name, month))

data_new.to_excel(‘{}.xlsx’.format(str(self.file_name).split(‘.’)[0]))

return ‘筛选完成!’

if name == ‘main’:

filename = input(“请输入文件名字:”)

path = ‘C:/Users/cherich/Desktop/’ + filename

pross = ExcelToPivot(filename, path)

print(pross.select_data(“C”, 4))

设计桌面窗口功能,文件名:opration.py

from tkinter import Tk, Entry, Button, mainloop

import tkinter.filedialog

import excel_to_pivot

from tkinter import messagebox

from tkinter import ttk

def Upload():

global filename, data_pivot_table

try:

filename = tkinter.filedialog.askopenfilename(title=‘选择文件’)

pross = excel_to_pivot.ExcelToPivot(str(filename).split(‘/’)[-1], filename)

data_pivot_table = pross.excel_Pivot()

messagebox.showinfo(‘Info’, ‘转换成功!’)

except Exception as e:

print(e)

messagebox.showinfo(‘Info’, ‘转换失败!’)

def select(name, month):

try:

print(‘供应商名称 == [“{}”] & 月份 == {}’.format(name, month))

data_new = data_pivot_table.query(‘供应商名称 == [“{}”] & 月份 == {}’.format(name, month))

data_new.to_excel(‘{}.xlsx’.format(str(filename).split(‘.’)[0]))

messagebox.showinfo(‘Info’, ‘筛选完成并生成文件!’)

root.destroy()

except Exception as e:

print(e)

messagebox.showinfo(‘Info’, ‘筛选失败!’)

root = Tk()

root.config(background=“#6fb765”)

root.title(‘自动转透视表小工具’)

root.geometry(‘500x250’)

e1 = Entry(root, width=30)

e1.grid(row=2, column=0)

btn1 = Button(root, text=’ 上传文件 ', command=Upload).grid(row=2, column=10, pady=5)

box1 = ttk.Combobox(root)

使用 grid() 来控制控件的位置

box1.grid(row=5, sticky=“NW”)

设置下拉菜单中的值

box1[‘value’] = (‘A’, ‘B’, ‘C’, ‘D’, ‘供应商’)

通过 current() 设置下拉菜单选项的默认值

box1.current(4)

box2 = ttk.Combobox(root)

box2.grid(row=5, column=1, sticky=“NW”)

box2[‘value’] = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, ‘月份’)

box2.current(12)

编写回调函数,绑定执行事件

def func(event):

global b1, b2

b1 = box1.get()

b2 = box2.get()

绑定下拉菜单事件

box1.bind(“<>”, func)

box2.bind(“<>”, func)

btn2 = Button(root, text=’ 筛选数据 ', command=lambda: select(b1, b2)).grid(row=30, column=10, pady=5)

mainloop()

如果运行结果如上,说明代码没有问题了,可以进行下一步。

打包 Python 程序生成 exe

打开 DOS 窗口并切换到 两个 py 文件所在的目录,注意路径中不要有中文。

pyinsatller -F -w opration.py

pyinstaller 指令的常见可选参数:

  • -i 给应用程序添加图标

  • -F 指定打包后只生成一个exe格式的文件

  • -D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)

  • -c –console, –nowindowed 使用控制台,无界面(默认)

  • -w –windowed, –noconsole 使用窗口,无控制台

  • -p 添加搜索路径

在当前的目录下,将会生成两个文件夹:build 和 dist。dist 里面就是所有可执行 exe 文件,发送快捷方式到桌面,点击 opration.exe 就能运行了,可以发它的快捷方式发送到桌面,双击就可以。

解决 exe 文件可能过大问题

有的伙伴 Python 环境刚安装没多久,可能不存在这个文件过大的问题。像我的电脑里安装了 Python 很多的依赖包和 anaconda 等等,打包出来的文件居然 660M,打包时间长,执行时还卡,后来经过整改缩小到 31M,打包快,秒级执行。解决方案是在 Windows 系统下安装一个 Python 的虚拟环境,前提是已经在电脑上安装过 Python 才可以进行如下操作。

找到 Python 所在路径,如果忘记了,可以在电脑左下角搜索【编辑系统环境变量】——【用户变量】——【PATH】中找到

配置虚拟环境

虚拟环境可以理解为是 Python 解释器的一个副本,在这个环境你可以安装私有包,而且不会影响系统中安装的全局 Python 解释器。虚拟环境非常有用,可以在系统的 Python 解释器中避免包的混乱和版本的冲突。

重要是不同虚拟环境可以搭建不同的 Python 版本,创建时候选择,我们这里需要一个相对 “干净” 的 Python 环境,没有安装过多依赖包,避免 exe 打包文件过大,所以用到虚拟环境。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

在这里插入图片描述

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
img

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-poHY1kET-1712844867035)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值