运用演示:
步骤:
1.将需要修改名称的图片放在一个文件夹中,选择此文件夹
2.输入命名格式,进行重命名
代码:
直接将下列代码复制到python编译器中即可
import os
from pathlib import Path
import tkinter as tk
from tkinter import filedialog, messagebox
class ImageRenamer:
def __init__(self):
self.window = tk.Tk()
self.window.title("图片批量重命名工具")
self.window.geometry("400x350")
# 创建界面元素
self.create_widgets()
def create_widgets(self):
# 选择文件夹按钮
self.folder_btn = tk.Button(self.window, text="选择文件夹", command=self.select_folder)
self.folder_btn.pack(pady=10)
# 显示选中的文件夹路径
self.folder_path = tk.StringVar()
self.path_label = tk.Label(self.window, textvariable=self.folder_path, wraplength=350)
self.path_label.pack(pady=5)
# 文件名前缀输入框
tk.Label(self.window, text="请输入文件名前缀:").pack(pady=5)
self.prefix_entry = tk.Entry(self.window)
self.prefix_entry.pack(pady=5)
self.prefix_entry.insert(0, "image")
# 间隔符号输入框
tk.Label(self.window, text="请输入间隔符号(如: _ - 或空):").pack(pady=5)
self.separator_entry = tk.Entry(self.window)
self.separator_entry.pack(pady=5)
self.separator_entry.insert(0, "_")
# 起始编号输入框
tk.Label(self.window, text="请输入起始编号:").pack(pady=5)
self.start_num = tk.Entry(self.window)
self.start_num.pack(pady=5)
self.start_num.insert(0, "1")
# 重命名按钮
self.rename_btn = tk.Button(self.window, text="开始重命名", command=self.rename_images)
self.rename_btn.pack(pady=20)
# 状态显示
self.status_var = tk.StringVar()
self.status_label = tk.Label(self.window, textvariable=self.status_var)
self.status_label.pack(pady=10)
def select_folder(self):
folder_path = filedialog.askdirectory()
if folder_path:
self.folder_path.set(folder_path)
def rename_images(self):
folder_path = self.folder_path.get()
if not folder_path:
messagebox.showerror("错误", "请先选择文件夹!")
return
prefix = self.prefix_entry.get()
separator = self.separator_entry.get()
try:
start_num = int(self.start_num.get())
except ValueError:
messagebox.showerror("错误", "起始编号必须是数字!")
return
# 支持的图片格式
image_extensions = ('.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp')
try:
# 获取所有图片文件
image_files = [f for f in os.listdir(folder_path)
if f.lower().endswith(image_extensions)]
# 排序确保重命名顺序
image_files.sort()
# 重命名计数
count = 0
# 重命名图片
for i, old_name in enumerate(image_files, start=start_num):
# 获取原文件扩展名
ext = os.path.splitext(old_name)[1]
# 新文件名
new_name = f"{prefix}{separator}{i}{ext}"
# 完整的文件路径
old_path = os.path.join(folder_path, old_name)
new_path = os.path.join(folder_path, new_name)
# 如果新文件名已存在,添加额外的编号
counter = 1
while os.path.exists(new_path):
new_name = f"{prefix}{separator}{i}{separator}{counter}{ext}"
new_path = os.path.join(folder_path, new_name)
counter += 1
os.rename(old_path, new_path)
count += 1
self.status_var.set(f"重命名完成!共处理 {count} 个文件")
messagebox.showinfo("成功", f"已完成重命名,共处理 {count} 个文件")
except Exception as e:
messagebox.showerror("错误", f"重命名过程中出错:{str(e)}")
def run(self):
self.window.mainloop()
if __name__ == "__main__":
app = ImageRenamer()
app.run()
标签:脚本,批量,python,self,window,tk,pady,path,folder From: https://blog.csdn.net/weixin_56259838/article/details/145149349