Pyinstaller使用之“我是个好人”

the quieter you become,the more you are able to hear!


一、事情起因

在某个风和日丽的下午,我不经意间 alt + Tab 切换到了微信,“不情愿”地刷起了群聊。突然间,女神的这三句话让我精神大振!这可比三杯咖啡来得精神,一想到能在女神面前表现自己,我立马投入了“战斗”!
在这里插入图片描述
好家伙!这还咋摸鱼?!思来想去,脚本小子走起!
在这里插入图片描述
在这里插入图片描述

二、使用步骤

1.编写Python代码

import pandas as pd

# 读取包含数据的Excel文件
data = pd.read_excel('input.xlsx')

# 遍历每一行数据
for index, row in data.iterrows():
    # 创建一个新的Excel文件
    new_excel = pd.DataFrame(row).transpose()

    # 将行数据保存为一个新的Excel文件
    output_filename = f'output_{index + 1}.xlsx'
    new_excel.to_excel(output_filename, index=False)

print("生成完成!")

Tip:这段代码是从Excel文件“input.xlsx”读取数据,然后将每一行的数据保存为一个单独的Excel文件,每个文件名为“output_索引.xlsx”。

2.失望

正当我代码写完,向女神索取文件的时候却被当场拒绝,表示是公司机密。
在这里插入图片描述
这可就麻烦了,不如打包成exe给她使用?说干就干!(当然代码要修改一下,毕竟出错了就是要打脸了!)

3.修改Python代码

import numpy as np
import pandas as pd
import os
from tkinter import Tk, filedialog
from openpyxl import load_workbook

# 创建Tkinter窗口
root = Tk()
root.withdraw()  # 隐藏主窗口

try:
    # 弹窗选择Excel文件
    print("请选择要处理的Excel文件")
    input_file_path = filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx")])

    if not input_file_path:
        print("未选择文件,程序结束。")
    else:
        # 在命令行显示生成中提示
        print("正在生成中,请稍后")

        # 读取Excel文件
        data = pd.read_excel(input_file_path)

        # 获取文件夹路径
        output_folder = os.path.dirname(input_file_path)
        output_folder_path = os.path.join(output_folder, "output")
        os.makedirs(output_folder_path, exist_ok=True)  # 创建output文件夹

        for index, row in data.iterrows():
            # 获取标签名(姓名或名字)
            label = row.get("姓名", row.get("名字"))

            # 创建新的Excel文件
            new_excel = pd.DataFrame(row).transpose()

            # 设置输出文件路径
            output_filename = os.path.join(output_folder_path, f'{label}.xlsx')

            if os.path.exists(output_filename):
                # 如果输出文件已存在,将数据追加到现有文件中
                book = load_workbook(output_filename)
                writer = pd.ExcelWriter(output_filename, engine='openpyxl', mode='a')
                writer.book = book
                new_excel.to_excel(writer, index=False, header=False, startrow=book.active.max_row)
                writer.save()
                writer.close()
            else:
                # 如果输出文件不存在,创建新文件并写入数据
                new_excel.to_excel(output_filename, index=False)

        # 在命令行显示生成完成提示
        print("生成完成!")
except Exception as e:
    print(f"发生错误:{e}")

Tip:这段代码会弹窗让我们选择Excel文件,根据标签名(“姓名”或者“名字”)以及行数生成对应的文件,新建一个文件夹“output”存放新生成的Excel文件(例如:小赵.xlsx)。
先浅试一下,可以!冲冲冲!
在这里插入图片描述

三.使用Pyinstaller

Python有一个Pyinstaller库,用于py文件打包成exe程序执行,目前也是第一次用过,当做学习了。
CMD命令行输入以下命令进行安装:

C:\User\sys>pip install pyinstaller -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

在这里插入图片描述
看到Successfully则表示安装成功。

1.test.py打包成test.exe

在这里插入图片描述
定位到脚本的路径,地址栏输入CMD输入以下命令:

D:\Summer\test>pyinstaller --onefile test.py

在这里插入图片描述
看到successfully则表示打包成功,exe程序存放的路径在当前目录的dist文件夹内。
在这里插入图片描述
在这里插入图片描述

2.使用test.exe

方法一:双击test.exe,选择源文件“input.xlsx”文件即可。
在这里插入图片描述
方法二:在test.exe程序的地址栏输入CMD,命令行输入test.exe即可。
在这里插入图片描述
在这里插入图片描述

3.终章

在源文件“input.xlsx”的同级目录下出现“output”文件夹,并且文件夹内包含新的Excel文件。
在这里插入图片描述

在这里插入图片描述
尝试打开其中一个看看,perfect!
在这里插入图片描述


总结

总的来说一切顺利,貌似女神执行了程序,兄弟们帮我看看是不是成功了?
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ViperSummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值