40岁重启人生学python,文件批量重命名,居然这么容易就实现了

对于我们中年人来说,想要学会Python真的太难了,有很多的麻烦,不只是来自生活的,还有你的时间,你的精力,这些都可能让你放弃。

我也看到了,很多中年人都是开启梦想时踌躇满志,结果没有一个是有结果的,也就是没有一个能坚持下来的。

所以,要是没有ai编程,我之前是不敢去想做这件事的,因为只有借助它的能量,我才能继续学下去。

因为deepseek你只有把你的想法给它,把你的需求表达清楚,它就能帮助你实现,最重要的就是有代码注释,这一项很关键,根据这些注释,再去一个个的学习那些理论和概念,比如说函数,变量等,就显得更加的容易了。

希望每天都能去练习一个。

import os
import tkinter as tk
from tkinter import filedialog, messagebox, ttk

class RenameTool:
    def __init__(self, root):
        self.root = root
        self.root.title("批量重命名工具")
        self.files = []
        
        # 创建工具栏
        toolbar = ttk.Frame(root)
        toolbar.pack(pady=5, fill=tk.X)
        
        self.btn_open = ttk.Button(toolbar, text="打开文件/文件夹", command=self.open_files)
        self.btn_open.pack(side=tk.LEFT, padx=5)
        
        # 顺序执行规则区域
        seq_frame = ttk.LabelFrame(root, text="顺序执行规则")
        seq_frame.pack(padx=10, pady=5, fill=tk.BOTH)
        
        self.seq_rules = []
        self.create_seq_rule(seq_frame, "1. 开头去除字符数:", "seq_start_remove")
        self.create_seq_rule(seq_frame, "2. 末尾去除字符数:", "seq_end_remove")
        self.create_seq_rule(seq_frame, "3. 开头添加字符:", "seq_start_add")
        self.create_seq_rule(seq_frame, "4. 末尾添加字符:", "seq_end_add")
        self.create_seq_rule(seq_frame, "5. 末尾序号(起始,位数):", "seq_serial_num")
        
        ttk.Button(seq_frame, text="执行顺序规则", command=self.apply_seq_rules).pack(pady=5)
        
        # 单独执行规则区域
        single_frame = ttk.LabelFrame(root, text="单独执行规则")
        single_frame.pack(padx=10, pady=5, fill=tk.BOTH)
        
        self.single_rules = []
        self.create_single_rule(single_frame, "6. 统一命名+序号:", "single_uniform_name")
        self.create_single_rule(single_frame, "7. 搜索替换内容:", "single_search_replace")
        
        ttk.Button(single_frame, text="执行单独规则", command=self.apply_single_rules).pack(pady=5)

    def create_seq_rule(self, parent, label, name):
        frame = ttk.Frame(parent)
        frame.pack(fill=tk.X, pady=2)
        ttk.Label(frame, text=label, width=20).pack(side=tk.LEFT)
        entry = ttk.Entry(frame)
        entry.pack(side=tk.LEFT, fill=tk.X, expand=True)
        self.seq_rules.append((name, entry))
    
    def create_single_rule(self, parent, label, name):
        frame = ttk.Frame(parent)
        frame.pack(fill=tk.X, pady=2)
        ttk.Label(frame, text=label, width=20).pack(side=tk.LEFT)
        entry = ttk.Entry(frame)
        entry.pack(side=tk.LEFT, fill=tk.X, expand=True)
        self.single_rules.append((name, entry))
    
    def open_files(self):
        files = filedialog.askopenfilenames()
        if files:
            self.files = list(files)
        else:
            dir_path = filedialog.askdirectory()
            if dir_path:
                self.files = [os.path.join(dir_path, f) for f in os.listdir(dir_path) if os.path.isfile(os.path.join(dir_path, f))]
    
    def apply_seq_rules(self):
        if not self.files:
            messagebox.showwarning("警告", "请先选择文件/文件夹")
            return
        
        for idx, file_path in enumerate(self.files):
            dir_name = os.path.dirname(file_path)
            base_name = os.path.basename(file_path)
            name, ext = os.path.splitext(base_name)
            
            # 应用顺序规则
            for rule in self.seq_rules:
                key, entry = rule
                value = entry.get().strip()
                
                if key == "seq_start_remove" and value.isdigit():
                    name = name[int(value):]
                elif key == "seq_end_remove" and value.isdigit():
                    name = name[:-int(value)] if int(value) < len(name) else ""
                elif key == "seq_start_add" and value:
                    name = value + name
                elif key == "seq_end_add" and value:
                    name += value
                elif key == "seq_serial_num" and value:
                    if "," in value:
                        start, digits = value.split(",", 1)
                        if start.isdigit() and digits.isdigit():
                            serial = f"{int(start)+idx:0{digits}d}"
                            name += serial
        
            new_name = name + ext
            os.rename(file_path, os.path.join(dir_name, new_name))
        
        messagebox.showinfo("完成", "顺序规则执行完成")
    
    def apply_single_rules(self):
        if not self.files:
            messagebox.showwarning("警告", "请先选择文件/文件夹")
            return
        
        for rule in self.single_rules:
            key, entry = rule
            value = entry.get().strip()
            if not value:
                continue
            
            for idx, file_path in enumerate(self.files):
                dir_name = os.path.dirname(file_path)
                base_name = os.path.basename(file_path)
                name, ext = os.path.splitext(base_name)
                
                if key == "single_uniform_name" and "+" in value:
                    parts = value.split("+", 1)
                    if len(parts) == 2 and parts[1].count(",") == 1:
                        base, nums = parts
                        start, digits = nums.split(",", 1)
                        if start.isdigit() and digits.isdigit():
                            new_name = f"{base}{int(start)+idx:0{digits}d}{ext}"
                            os.rename(file_path, os.path.join(dir_name, new_name))
                elif key == "single_search_replace" and "->" in value:
                    search, replace = value.split("->", 1)
                    name = name.replace(search, replace)
                    new_name = name + ext
                    os.rename(file_path, os.path.join(dir_name, new_name))
        
        messagebox.showinfo("完成", "单独规则执行完成")

if __name__ == "__main__":
    root = tk.Tk()
    app = RenameTool(root)
    root.mainloop()

第一步:安装Python

  1. 访问Python官网

  2. 下载最新版Windows安装程序(选择"Add Python to PATH"选项)

  3. 运行安装程序,全部保持默认设置

第二步:验证安装

  1. 打开命令提示符(Win+R输入cmd

  2. 输入 python --version 应显示版本号(如Python 3.11.4)

第三步:保存程序

  1. 新建文本文件,粘贴完整代码

  2. 另存为 rename_tool.py(注意保存类型选"所有文件",编码选UTF-8)

第四步:运行程序

  1. 在文件资源管理器中找到rename_tool.py

  2. 右键选择"使用Python运行"(若没有该选项则双击运行)

使用方法:

  1. 点击"打开文件/文件夹"选择要处理的文件

  2. 在顺序规则区填写需要的修改规则

  3. 点击"执行顺序规则"按钮应用修改

  4. 或在单独规则区填写单一规则后点击"执行单独规则"

注意事项:

  1. 操作前建议备份文件

  2. 数字输入框只接受整数

  3. 替换规则使用->分隔搜索和替换内容(例如:旧->新)

  4. 统一命名格式示例:图片+1,3 → 图片001、图片002...

程序界面将显示所有操作区域,按照您的需求设计布局。遇到任何错误会有弹窗提示,请根据提示操作即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

飞哥知行录

打赏的都功德无量,随缘乐助

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

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

打赏作者

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

抵扣说明:

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

余额充值