当前位置:

首页 > 编程开发 > 用 Python 编写桌面小工具,提高工作效率!

用 Python 编写桌面小工具,提高工作效率!

决定写这篇文章的初衷是来源于一位小伙伴的问题,关于"如何根据数据源用Python自动生成透视表",这个问题背后有个非常好的解决思路,让代码替我们做重复的工作,从而减轻工作量,减少出错。Python开发的小工具实际上是将Python程序打包成exe,分享即可用,即便电脑没有安装Python环境,也可以使用,用代码提高工作效率,尽量少加班。内容大纲明确需求:自动生成透视表【这部分可以换成你的重复性工作】安装三方依赖库:tkinter和pyinstaller代码实现:包括两部分Pyt

本文目录

    用 Python 编写桌面小工具,提高工作效率!

    决定写这篇文章的初衷是来源于一位小伙伴的问题,关于"如何根据数据源用 Python 自动生成透视表",这个问题背后有个非常好的解决思路,让代码替我们做重复的工作,从而减轻工作量,减少出错。

    Python 开发的小工具实际上是将 Python 程序打包成 exe,分享即可用,即便电脑没有安装 Python 环境,也可以使用,用代码提高工作效率,尽量少加班。

    用 Python 编写桌面小工具,提高工作效率!

    内容大纲

    •  明确需求:自动生成透视表【这部分可以换成你的重复性工作】
    •  安装三方依赖库:tkinter 和 pyinstaller
    •  代码实现:包括两部分 Python 生成透视表和桌面 GUI 联动设计
    •  打包 Python 程序 生成 exe 可执行文件
    •  解决 exe 文件可能过大问题:安装虚拟环境

    1. 需求背景

    将工作中重复性的操作,利用供应商名称,月份,入库金额三个字段来生成想要的透视表格式。

    用 Python 编写桌面小工具,提高工作效率!

    2. 安装三方依赖库

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

    pip install tkinter

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

    pip install pyinstaller

    3. 代码实现

    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))

    用 Python 编写桌面小工具,提高工作效率!

    设计桌面窗口功能,文件名: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 编写桌面小工具,提高工作效率!

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

    4. 打包 Python 程序生成 exe

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

    pyinsatller -F -w opration.py

    用 Python 编写桌面小工具,提高工作效率!

    pyinstaller 指令的常见可选参数:

    •  -i 给应用程序添加图标
    •  -F 指定打包后只生成一个exe格式的文件
    •  -D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
    •  -c –console, –nowindowed 使用控制台,无界面(默认)
    •  -w –windowed, –noconsole 使用窗口,无控制台
    •  -p 添加搜索路径

    用 Python 编写桌面小工具,提高工作效率!

    用 Python 编写桌面小工具,提高工作效率!

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

    5. 解决 exe 文件可能过大问题

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

    用 Python 编写桌面小工具,提高工作效率!

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

    用 Python 编写桌面小工具,提高工作效率!

    用 Python 编写桌面小工具,提高工作效率!

    配置虚拟环境

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

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

    安装虚拟环境依赖包

    pip install virtualenv
    pip install virtualenvwrapper-win

    创建虚拟环境命令

    mkvirtualenv -p="C:UserscherichAppDataLocalProgramsPythonPython38python.exe" py38

    进入虚拟环境,可以看到只有几个默认的 Python 库

    用 Python 编写桌面小工具,提高工作效率!

    这时可以测试一下代码,是否缺少相关依赖,比如我这个缺少 Pandas,openpyxl,依次按照 pip install 包名安装即可,非常重要的点:pyinstaller 必须重新安装,文件才会缩小。

    用 Python 编写桌面小工具,提高工作效率!

    上述操作完成后,打包就可以了,最后退出虚拟环境即可。

    用 Python 编写桌面小工具,提高工作效率!

    退出虚拟环境

    deactivate

    用 Python 编写桌面小工具,提高工作效率!

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Python
    相关文章 更多
    python删除一个列表里的重复元素的方法与代码示例
    python删除一个列表里的重复元素的方法与代码示例

    学习如何使用Python高效删除列表中的重复元素。本文提供5种常见方法的代码示例,涵盖保持顺序与不保持顺序的场景,适合初学者和进阶开发者参考。

    Python写接口的步骤及完整代码示例
    Python写接口的步骤及完整代码示例

    详细讲解使用Python编写Web接口的核心步骤与完整代码示例,涵盖环境准备、路由定义、数据校验、服务启动及调试测试方法。

    codex怎么读取word文档及docx文件操作教程
    codex怎么读取word文档及docx文件操作教程

    介绍如何利用编程工具读取和解析Word文档(docx格式),涵盖基础文本提取代码示例、结构化数据处理逻辑,以及处理复杂排版时的技术局限与替代方案。

    怎么在Python中调用C语言代码提升性能
    怎么在Python中调用C语言代码提升性能

    详细讲解在Python中调用C语言代码提升性能的完整实践指南,包含原理分析、编译步骤、ctypes与CFFI具体实现、性能对比及常见陷阱。

    Python与C语言的性能差异及底层原理
    Python与C语言的性能差异及底层原理

    深入解析Python与C语言在执行效率上的数量级差异,从编译机制、变量内存布局、动态类型推断到GIL锁,系统阐明底层核心原理。

    Python和C语言哪个更适合编程入门
    Python和C语言哪个更适合编程入门

    客观对比Python与C语言在心智负担、底层机制与学习反馈上的核心差异,提供清晰有据的选择标准与切实的入门学习路径。

    selenium上传文件教程本地文件路径设置方法
    selenium上传文件教程本地文件路径设置方法

    深入解析Selenium处理文件上传的技术细节,涵盖标准HTML控件的路径直接注入法与非标准控件的系统级模拟方案,提供Windows与Linux环境下的路径设置最佳实践及常见异常排查。

    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景
    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景

    针对大数据工程场景,系统对比Java、Scala与Python在执行性能、生态结合、开发效率和维护成本上的核心差异,给出清晰的架构选型依据与落地方案。

    langgraph python guide中文入门教程详解
    langgraph python guide中文入门教程详解

    本篇LangGraph Python中文入门教程详解,系统梳理StateGraph状态机定义、节点编写、边与条件路由、检查点持久化(MemorySaver)等核心机制,提供从环境安装到完整循环智能体构建的代码示例与实操指导。

    Windows 安装 Python:从官方入口到虚拟环境的可复现实践
    Windows 安装 Python:从官方入口到虚拟环境的可复现实践

    面向后端开发者,基于 Python 官方文档说明如何在 Windows 上安装 Python、创建 venv 虚拟环境及使用 pip 管理依赖。包含可复制命令、验证方法及工具选择边界,避免常见配置误区。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。