吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1519|回复: 16
收起左侧

[Windows] 手把手教学用pytnon写一个上传excel批量创建文件夹的软件,小白也能看懂哦!

  [复制链接]
bhl 发表于 2025-7-5 18:30
本帖最后由 bhl 于 2025-7-5 18:53 编辑

前言
       我是在光伏电站上班的值长,日常处理文字性工作比较多,最近公司在搞什么安全环保的自查整改,里面有1000+条目,要求对每个条目都要创建文件夹,在里面放对应的资料。作为一名(优秀的)程序员这不得写个excel创建文件夹的软件来搞定,我大学学的java和vue多一些,主要写后端和网页,这个需求是本地端,写java转exe比较麻烦(我比较懒哈哈),问了一下ai说python适合,哪就ai用python写吧,我以教学的方式写,有一定基础的或小白同志也能大概看懂代码的方式写,以教学和实用为目的哈,如果对你有一点点帮助,希望可以给个5🌟好评哦。
正文
选择Excel文件自动读取内容(Excel文件默读取认为第一个表的是a列下的所有有内容的单元格)
批量创建文件夹
自动打开目标文件夹让你检查
操作简单,界面友好,专为懒人设计!

下载地址          https://jpp.lanzoue.com/igyTe30cb9vc


import tkinter as tk
from tkinter import filedialog
import pandas as pd
import os
def zuofan():
    file_path = filedialog.askopenfilename(filetypes=[("xlsx文件", "*.xlsx")] )
    if file_path:
        label2.config(text="已选择文件:"+ file_path)
        try:
            duqudaodeAleishujv = pd.read_excel(file_path, usecols="A", dtype={"A": str}, sheet_name=0,header=None)
            for i in range(len(duqudaodeAleishujv.iloc[:, 0].tolist())):
                wenjianjia: str = str(duqudaodeAleishujv.iloc[:, 0].tolist()[i])
                os.makedirs("D:\\wenjianjia\\" + wenjianjia, exist_ok=True)
            label.config(text="恭喜您成功创建!"+str(duqudaodeAleishujv.iloc[:, 0].tolist())+" 文件夹目录为 D:\\wenjianjia ")
            folder_path = r"D:\wenjianjia"
            os.startfile(folder_path)
        except Exception as e:
            label.config(text="创建文件夹失败!" + str(e))
root = tk.Tk()
root.title("攀攀excel创建文件夹")
root.geometry("700x300")
upload_btn = tk.Button(root, text="上传xlsx文件", command=zuofan)
upload_btn.pack(pady=20)
label = tk.Label(root, text="请上传xlsx文件")
label.pack()
label2 = tk.Label(root, text="已选择文件:")
label2.pack()
root.mainloop()

#详细版
# 1前四段代码为导入python模块包,就像你做饭,先准备好食材和锅碗
# [from 模块名]  import[模块 | | 变量 | 函数 |*][as 别名]
# import tkinter as tk   引入tkinter模块(gui图形界面).as tk,引入tkinter模块,并起别名tk,就像你家锅全名为无敌不锈钢锅,你为了方便起别名锅
# from tkinter import filedialog 导入Tkinter文件对话框模块  就像你家的锅没有类似锅把手的,你怕端锅时会烫到你,所有加个锅把手。
import tkinter as tk
from tkinter import filedialog
import pandas as pd
import os
# 2这是一个方法,你做饭时的方法步骤   def zuofan() 定义做饭的方法名称为zuofan,
def zuofan():
    # 使用Tkinter filedialog 模块 创建一个文件选择对话框,让用户选择一个 .xlsx 文件(Excel 文件)
    # filedialog.askopenfilename() 弹出一个系统原生的文件选择窗口,用户选择文件后,返回文件的 完整路径(字符串),如果用户取消选择则返回空字符串
    # filedialog.askopenfilename() 就像是你做饭的步骤中的其中一个步骤名称,()中的内容为再具体的细节步骤,filetypes=[("xlsx文件", "*.xlsx")]好比你用刀切小苹果或者你选择一把刀
    # file_path 为把iledialog.askopenfilename()这个方法起一个自己想要名称,
    file_path = filedialog.askopenfilename(
        filetypes=[("xlsx文件", "*.xlsx")]  # 限制只能选择 .xlsx 文件
        # filetypes=[("所有文件", "*.*")]     # 这样就是没有限制,但是我用了上面的限制,所以只能选择.xlsx文件
    )
    if file_path:  # 如果用户选择了文件
        # 这是一个 Tkinter Label 组件(标签),用于在窗口中显示静态文本或动态信息。这里显示你选则的 .xlsx 文件地址,你在软件面板上看到的"已选择文件:"就是这个组件的作用(text属性)
        label2.config(text="已选择文件:"+ file_path)
        # 下面代码作用是,读取Excel文件的第一列数据,并根据该列的内容在D:\wenjianjia目录下批量创建文件夹
        # try:   尝试执行以下代码(如果出错会跳转到 except)  这样你就知道你这次做饭方法是否成功了,不成功会显示错误信息你可以查找错误改进
        # except Exception as e:如果出错,显示错误信息,

        try:
            # 只读取 Excel文件A 列单元格
            # file_path,  # 用户选择的 Excel 文件路径
            # usecols = "A",  # 只读取 A
            # dtype = {"A": str},  # 强制将 A 列内容转为字符串类型(避免数字被误处理)
            # sheet_name = 0,  # 读取第一个工作表
            # header = None  # 不将第一行作为列标题
            duqudaodeAleishujv = pd.read_excel(file_path, usecols="A", dtype={"A": str}, sheet_name=0,header=None)
            # 下面执行的是创建文件夹步骤

            # len(duqudaodeAleishujv.iloc[:, 0].tolist())  查看a列有数据的单元格个数
            # len() 获取列表长度
            # iloc[:, 0] 表示选取所有行的第一列(A 列)数据
            # .tolist() 将数据转为 Python 列表,例如 ["文件夹1", "文件夹2"]
            # for i in range() Python 中的 循环语句,用于重复执行某段代码一定的次数,就是重复的创建不同名字的文件夹,创建len()次即a列有数据的单元格个数次数
            for i in range(len( duqudaodeAleishujv.iloc[:, 0].tolist())):
                # wenjianjia: str = str(a_column.iloc[:, 0].tolist())  # 获取 A 列第 i 行的值, i0开始,每重复的创建一次就加1
                wenjianjia: str = str( duqudaodeAleishujv.iloc[:, 0].tolist()[i])
                # 创建多级目录(如D:\wenjianjia\文件夹1)。 exist_ok=True:如果文件夹已存在,不会报错。
                os.makedirs("D:\\wenjianjia\\" + wenjianjia, exist_ok=True)
                # 执行到这一步说明创建文件夹成功
            label.config(text="恭喜您成功创建!"+str( duqudaodeAleishujv.iloc[:, 0].tolist())+" 文件夹目录为 D:\\wenjianjia ")
            folder_path = r"D:\wenjianjia"  # 替换为你的文件夹路径
            os.startfile(folder_path)     # 打开D:\wenjianjia目录文件夹
        except Exception as e:
            label.config(text="创建文件夹失败!" + str(e))
# 3下面代码展示你怎么把饭摆上桌,摆在软件界面哪个位置
root = tk.Tk()  # 创建主窗口对象
root.title("攀攀excel创建文件夹")  # 设置窗口标题
root.geometry("700x300")  # 设置窗口大小(宽x高)
# 添加上传按钮
# upload_btn = tk.Button(
#     root,  # 按钮放在主窗口中
#     text="上传xlsx文件",  # 按钮显示的文本
#     command=zuofan  # 点击按钮时调用的函数(需提前定义)
# )
# upload_btn.pack(pady=20)  # 将按钮放入窗口,并设置上下边距为20像素
upload_btn = tk.Button(root, text="上传xlsx文件", command=zuofan)
upload_btn.pack(pady=20)
# tk.Label():创建静态文本标签。
# 第一个标签 (label) 是提示用户上传文件。
# 第二个标签 (label2) 用于后续显示用户选择的文件路径(通过 label2.config() 动态更新,如你的其他代码所示)。
label = tk.Label(root, text="请上传xlsx文件")
label.pack()
label2 = tk.Label(root, text="已选择文件:")
label2.pack()
# 进入Tkinter的主循环,保持窗口运行。
root.mainloop()

后面我放了exe版哦,下载地址https://jpp.lanzoue.com/igyTe30cb9vc解压软件打开,双击攀攀excel创建文件夹.exe文件,第一次加载会慢点哦。然后点击,上传xlsx文件 按钮,选择你写好的xlsx后缀的文件,上传完就自动执行喽。







免费评分

参与人数 4吾爱币 +5 热心值 +3 收起 理由
caihuachaorou87 + 1 + 1 谢谢@Thanks!
wxn2023 + 1 + 1 我虽一分,但敬十分
风子是我 + 2 + 1 用心讨论,共获提升!
zhengzhenhui945 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zhengzhenhui945 发表于 2025-7-5 22:29
感谢分享,已学习,批量创建文件夹,也可以用批处理BAT或者是VBS,或者Excel的VBA实现,
===================
无恶意,仅作讨论交流哈,我平时也整理文件,摸索出懒人大法.........只要是文件名规范,可以取特定文件名字符,然后创建文件夹移入归类,感觉那样更方便。
例如:语文-XXXXXX.文件    创建文件夹‘语文’把文件移入。
=============
论坛内资料参考
批处理方法https://www.52pojie.cn/thread-1954876-1-1.html
多功能版https://www.52pojie.cn/thread-1842962-1-1.html
Exce  VBA版本https://www.52pojie.cn/thread-1843416-1-1.html
bat取关键词归类https://www.52pojie.cn/thread-1941826-1-1.html
取某些字符归类https://www.52pojie.cn/thread-1947077-1-1.html
BarryLiaollb 发表于 2025-7-7 02:07
操作 EXCEL还是VBA或VB更接近一些 。批量创建文件夹几行代码就完成了。不过分享的精神值得点 赞,互相学习。
doubleA 发表于 2025-7-5 19:22
naixubao 发表于 2025-7-5 19:30
学习了,谢谢楼主分享,辛苦了,非常实用的工具。
losingstars 发表于 2025-7-5 21:27
谢谢解析。
wu1357924680 发表于 2025-7-5 21:47
学到了,感谢
pbf0613 发表于 2025-7-6 07:56
谢谢 分享!
zwq821 发表于 2025-7-6 10:39
学到了看得懂。
lixiong627 发表于 2025-7-6 18:07
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-7-20 21:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表