对于我们中年人来说,想要学会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
-
访问Python官网
-
下载最新版Windows安装程序(选择"Add Python to PATH"选项)
-
运行安装程序,全部保持默认设置
第二步:验证安装
-
打开命令提示符(Win+R输入
cmd
) -
输入
python --version
应显示版本号(如Python 3.11.4)
第三步:保存程序
-
新建文本文件,粘贴完整代码
-
另存为
rename_tool.py
(注意保存类型选"所有文件",编码选UTF-8)
第四步:运行程序
-
在文件资源管理器中找到
rename_tool.py
-
右键选择"使用Python运行"(若没有该选项则双击运行)
使用方法:
-
点击"打开文件/文件夹"选择要处理的文件
-
在顺序规则区填写需要的修改规则
-
点击"执行顺序规则"按钮应用修改
-
或在单独规则区填写单一规则后点击"执行单独规则"
注意事项:
-
操作前建议备份文件
-
数字输入框只接受整数
-
替换规则使用
->
分隔搜索和替换内容(例如:旧->新) -
统一命名格式示例:图片+1,3 → 图片001、图片002...
程序界面将显示所有操作区域,按照您的需求设计布局。遇到任何错误会有弹窗提示,请根据提示操作即可。