求帮写个小软件,文件按份数批量移动到文件夹

查看 56|回复 6
作者:hongye0   
因工作需求,我要把文件批量改名成数字,再分别移到子文件夹里,想要一个软件来简化工作量。举个例子:
[color=]某个文件夹里有100个文件,文件名只有数字,从1到100
[color=]要在这个文件夹里创建3个新子文件夹,名称分别为“1”“2”“3”(只需数字),然后把
[color=]文件1、4、7……97、100移动到文件夹1
文件2、5、8……95、98移动到文件夹2
[color=]文件3、6、9……96、99移动到文件夹3
几点说明:
文件名批量改名后一定是连贯的,但不一定是从1开始,可能是从5到116;文件名可能0开头,比如从0009到0123
界面只需要三部分即可:选择文件夹(能拖入更好);输入数字(即要创建的新子文件夹数量);开始按钮
屏幕有缩放,望能适配一下
时间不急,可以先接下来,等方便在做

文件夹, 文件

pythonfun   

写好了呀。不知道我理解的对不对?这个软件是Python软件,需要打包时告诉我。
字符串字典排序:保持 "001" [Python] 纯文本查看 复制代码import tkinter as tk
from tkinter import ttk, filedialog, messagebox
import os
import shutil
class FileBatchProcessor:
    def __init__(self, root):
        self.root = root
        self.root.title("文件批量处理工具")
        self.root.geometry("600x200")
        
        # 设置样式
        self.style = ttk.Style()
        self.style.configure("TLabel", font=("宋体", 12))
        self.style.configure("TButton", font=("宋体", 12))
        self.style.configure("TEntry", font=("宋体", 12))
        
        self.setup_ui()
        
    def setup_ui(self):
        # 文件夹选择区域
        folder_frame = ttk.Frame(self.root)
        folder_frame.pack(fill="x", padx=20, pady=10)
        
        ttk.Label(folder_frame, text="文件夹路径:").pack(side="left")
        
        self.folder_var = tk.StringVar()
        self.folder_entry = ttk.Entry(folder_frame, textvariable=self.folder_var, width=50)
        self.folder_entry.pack(side="left", fill="x", expand=True, padx=(10, 5))
        
        ttk.Button(folder_frame, text="浏览", command=self.browse_folder).pack(side="left", padx=(5, 0))
        
        # 参数设置区域
        param_frame = ttk.Frame(self.root)
        param_frame.pack(fill="x", padx=20, pady=10)
        
        ttk.Label(param_frame, text="子文件夹数量:").pack(side="left")
        
        self.folder_count_var = tk.StringVar(value="3")
        self.folder_count_entry = ttk.Entry(param_frame, textvariable=self.folder_count_var, width=10)
        self.folder_count_entry.pack(side="left", padx=(10, 0))
        
        # 按钮区域
        button_frame = ttk.Frame(self.root)
        button_frame.pack(fill="x", padx=20, pady=20)
        
        ttk.Button(button_frame, text="重命名文件", command=self.rename_files).pack(side="left", padx=(0, 10))
        ttk.Button(button_frame, text="移动文件", command=self.move_files).pack(side="left", padx=(0, 10))
        ttk.Button(button_frame, text="开始处理", command=self.start_processing).pack(side="left")
        
    def browse_folder(self):
        folder_path = filedialog.askdirectory()
        if folder_path:
            self.folder_var.set(folder_path)
   
    def validate_inputs(self):
        folder_path = self.folder_var.get().strip()
        if not folder_path or not os.path.exists(folder_path):
            messagebox.showerror("错误", "请选择有效的文件夹路径")
            return False
        
        try:
            folder_count = int(self.folder_count_var.get().strip())
            if folder_count
hongye0
OP
  


pythonfun 发表于 2025-10-3 22:45
写好了呀。不知道我理解的对不对?这个软件是Python软件,需要打包时告诉我。
字符串字典排序:保持 "001" ...

你好,可以验证一下,在文件夹里批量新建若干个文档,并批量改名成连贯的数字,能实现我要的效果就行
pythonfun   


hongye0 发表于 2025-10-3 22:59
你好,可以验证一下,在文件夹里批量新建若干个文档,并批量改名成连贯的数字,能实现我要的效果就行

验证过成功了的。
hongye0
OP
  


pythonfun 发表于 2025-10-3 23:01
验证过成功了的。

那可以,请先发过来看看
pythonfun   


hongye0 发表于 2025-10-3 23:03
那可以,请先发过来看看

打包好了,这里下载:
https://wwkg.lanzouq.com/iSGkD37l8cyb
a3131311026   

https://c.wss.cc/f/i4qhvedm3kj 复制链接到浏览器打开
您需要登录后才可以回帖 登录 | 立即注册

返回顶部