好友
阅读权限10
听众
最后登录1970-1-1
|
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 行的值, i从0开始,每重复的创建一次就加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后缀的文件,上传完就自动执行喽。
|
免费评分
-
查看全部评分
|