简单 实现一个批量改文件名的app
原创
©著作权归作者所有:来自51CTO博客作者wx6452268c5b380的原创作品,请联系作者获取转载授权,否则将追究法律责任
import os
import shutil
import tkinter as tk
from tkinter import filedialog
class BatchRenameApp:
def init(self, master):
self.master = master
master.title("批量重命名程序")
# 添加 Label 和按钮
self.select_button = tk.Button(master, text="选择目录", command=self.select_directory)
self.rename_button = tk.Button(master, text="重命名", command=self.rename_files)
self.select_button.pack()
self.rename_button.pack()
# 添加 Text 组件和 Entry 组件
self.file_list_text = tk.Text(master, bg="white", width=40, height=20)
self.file_list_text.pack()
self.new_name_entry = tk.Entry(master)
self.new_name_entry.pack()
# 初始化目录路径和文件列表
self.directory_path = ""
self.file_list = []
def select_directory(self):
# 弹出选择目录对话框
self.directory_path = filedialog.askdirectory()
self.file_list_text.delete("1.0", 'end')
self.file_list = []
# 遍历目录下的文件和子目录
for root, dirs, files in os.walk(self.directory_path):
for file in files:
if file.endswith(".txt"):
file_path = os.path.join(root, file)
self.file_list.append(file_path)
self.file_list_text.insert(tk.END, file_path + "\n")
def rename_files(self):
if not self.directory_path:
self.file_list_text.insert(tk.END, "请先选择目录!\n")
return
new_name = self.new_name_entry.get()
if not new_name:
self.file_list_text.insert(tk.END, "请先输入新文件名!\n")
return
# 遍历文件列表,重命名文件
for file_path in self.file_list:
file_dir = os.path.dirname(file_path)
old_file_name = os.path.basename(file_path)
new_file_name = new_name + "_" + old_file_name
new_file_path = os.path.join(file_dir, new_file_name)
shutil.move(file_path, new_file_path)
self.file_list_text.insert(tk.END, "{} --> {}\n".format(old_file_name, new_file_name))
self.file_list_text.insert(tk.END, "文件重命名完成!\n")
if name == 'main':
root = tk.Tk()
app = BatchRenameApp(root)
root.mainloop()