当前位置: 首页 > news >正文

Python 脚本打包成可执行的 .exe 文件

需求

提取州信息,插入到后面一列。

脚本

import tkinter as tk
from tkinter import filedialog, messagebox
import pandas as pd
import re
import osdef extract_state(address):if pd.isna(address):return ''# 提取两个大写字母的州缩写,例如 OR, CA, NYmatch = re.search(r',\s*([A-Z]{2})\b', address)return match.group(1) if match else ''def process_file(filepath):try:df = pd.read_excel(filepath)# 提取州信息df['Shopper'] = df['Shopper Billing Address'].apply(extract_state)# 将 'Shopper' 列移动到第3列(即插入到 C 列)cols = list(df.columns)shopper_index = cols.index('Shopper')cols.insert(2, cols.pop(shopper_index))  # 把 'Shopper' 移到第3个位置df = df[cols]# 保存新文件output_path = os.path.splitext(filepath)[0] + "_with_shopper.xlsx"df.to_excel(output_path, index=False)messagebox.showinfo("完成", f"处理完成,文件已保存为:\n{output_path}")except Exception as e:messagebox.showerror("错误", str(e))def open_file():filepath = filedialog.askopenfilename(title="选择 Excel 文件",filetypes=[("Excel 文件", "*.xlsx *.xls")])if filepath:process_file(filepath)# 创建 GUI 界面
root = tk.Tk()
root.title("提取州字段 - Excel工具")
root.geometry("300x150")btn = tk.Button(root, text="选择并处理Excel文件", command=open_file, padx=10, pady=5)
btn.pack(pady=40)root.mainloop()

运行会弹出图形化界面:

image.png


上传文件会进行生成新的文件,插入州信息。

打包

1. 安装 PyInstaller

pip install pyinstaller

2.运行打包命令

pyinstaller --onefile --windowed python_gui.py


参数解释:
●--onefile:该参数会将所有依赖项打包成一个单独的 .exe 文件,方便分发和使用。
●--windowed:对于 GUI 程序,使用此参数可以避免在运行 .exe 文件时弹出命令行窗口。

3. 等待打包完成

运行上述命令后,PyInstaller 会开始分析脚本的依赖关系,并将所有必要的文件打包成一个 .exe

文件。这个过程可能需要一些时间,具体取决于脚本的复杂度和依赖项的数量。

4. 找到生成的 .exe 文件

打包完成后,PyInstaller 会在当前目录下创建一个 dist 文件夹,里面包含生成的 .exe 文件。可以将这个 .exe 文件复制到其他地方运行,无需安装 Python 环境和依赖库。

image.png

image.png


双击即可执行脚本。

若有收获,就点个赞吧

相关文章:

  • 【quantity】0 README.md文件
  • JavaScript 到命令和控制 (C2) 服务器恶意软件分析及防御
  • Godhood ID——迈向去中心化AI情商生态系统的第一步
  • 单调栈算法精解(Java实现):从原理到高频面试题
  • 探秘数据中台:五大核心平台的功能全景解析
  • 封装axios,实现取消请求
  • 个人码支付免签系统三网免挂支付宝微信QQ钱包即时到账收款二维码聚合支付源码
  • 可视化图解算法33:判断是不是平衡二叉树
  • 告别异步复杂性?JDK 21 虚拟线程让高并发编程重回简单
  • I2C总线驱动开发:MPU6050应用
  • 《Python星球日记》 第36天:线性代数基础
  • 网站防护如何无惧 DDoS 攻击?
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据类型转换操作
  • 邂逅蓝耘元生代:ComfyUI 工作流与服务器虚拟化的诗意交织
  • 【coze】手册小助手(提示词、知识库、交互、发布)
  • 黑马点评day04(分布式锁-setnx)
  • AI数据分析中的伪需求场景:现状、挑战与突破路径
  • RAG_Techniques:探索GitHub热门RAG技术开源项目
  • MySQL的内置函数与复杂查询
  • HarmonyOS 5.0 分布式数据协同与跨设备同步​​
  • 黔西游船倾覆事故84名落水人员已全部找到,10人不幸遇难
  • 菲律宾首都机场航站楼外发生汽车冲撞事故致2死多伤
  • 美国季度GDP时隔三年再现负增长,特朗普政府关税政策对美国经济负面影响或将持续
  • 向左繁华都市,向右和美乡村,嘉兴如何打造城乡融合发展样本
  • 解放日报:“北斗七星”列阵,AI群星闪耀
  • 上海科创再出发:“造星”的城和“摘星”的人