文件后缀批量修改工具
以下是可以用来批量修改文件后缀的 Python 代码。这个代码使用了 Python 标准库中的 os 和 tkinter,以及 filedialog 和 ttk 库中的一些组件。
import os
import tkinter as tk
from tkinter import filedialog, ttk
class BatchRenameGUI:
def __init__(self):
self.root = tk.Tk()
self.root.title("Batch Rename Tool")
self.root.geometry("400x150")
self.root.resizable(False, False)
self.folder_path = tk.StringVar()
self.new_suffix = tk.StringVar()
self.progress = tk.StringVar()
folder_label = ttk.Label(self.root, text="Select Folder:")
folder_label.grid(row=0, column=0, padx=10, pady=10, sticky="w")
folder_entry = ttk.Entry(self.root, textvariable=self.folder_path, width=40)
folder_entry.grid(row=0, column=1, padx=10, pady=10)
folder_button = ttk.Button(self.root, text="Browse", command=self.select_folder)
folder_button.grid(row=0, column=2, padx=10, pady=10)
suffix_label = ttk.Label(self.root, text="New Suffix:")
suffix_label.grid(row=1, column=0, padx=10, pady=10, sticky="w")
suffix_entry = ttk.Entry(self.root, textvariable=self.new_suffix, width=40)
suffix_entry.grid(row=1, column=1, padx=10, pady=10)
start_button = ttk.Button(self.root, text="Start Rename", command=self.start_rename)
start_button.grid(row=2, column=1, padx=10, pady=10)
progress_label = ttk.Label(self.root, textvariable=self.progress)
progress_label.grid(row=3, column=1, padx=10, pady=10)
self.root.mainloop()
def select_folder(self):
folder_path = filedialog.askdirectory()
self.folder_path.set(folder_path)
def start_rename(self):
folder_path = self.folder_path.get()
new_suffix = self.new_suffix.get()
self.progress.set("Renaming files...")
self.root.update()
for root, dirs, files in os.walk(folder_path):
for file in files:
if not file.endswith(new_suffix):
old_file_path = os.path.join(root, file)
new_file_path = os.path.join(root, os.path.splitext(file)[0] + "." + new_suffix)
os.rename(old_file_path, new_file_path)
self.progress.set("Rename complete!")