我们首先需要创建一个图形界面,让用户选择目录,并选择重命名的方式。Tkinter 是 Python 的标准 GUI 库,非常适合完成这个任务。以下是一个简单的实现示例,包含了用户选择目录的对话框、重命名选项以及执行重命名功能的逻辑。
请注意,此代码仅供学习和参考,实际应用时可能需要根据具体情况进行调整。

import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox
import os
from datetime import datetime
def select_directory():
directory = filedialog.askdirectory()
if directory:
path_var.set(directory)
messagebox.showinfo("提示", "已选择目录:" + directory)
def rename_files(mode):
directory = path_var.get()
if not directory:
messagebox.showerror("错误", "请先选择目录!")
return
files = [f for f in os.listdir(directory) if os.path.isfile(os.path.join(directory, f))]
if not files:
messagebox.showinfo("提示", "目录下无文件可重命名。")
return
for index, filename in enumerate(files):
filepath = os.path.join(directory, filename)
if mode == 1: # 按日期时分秒重命名
timestamp = datetime.now().strftime('%Y%m%d%H%M%S%f')
new_filename = timestamp + "_" + filename
elif mode == 2: # 按数字编号重命名
new_filename = f"{index+1}_{filename}"
else: # 添加前缀或后缀(这里以添加前缀为例,可以根据需要调整)
prefix = entry_prefix.get() or "prefix_"
new_filename = prefix + filename
new_filepath = os.path.join(directory, new_filename)
try:
os.rename(filepath, new_filepath)
except Exception as e:
messagebox.showerror("错误", f"重命名文件 {filename} 时出错:{str(e)}")
return
messagebox.showinfo("成功", "文件重命名完成。")
def main():
global path_var, entry_prefix
root = tk.Tk()
root.title("文件重命名工具")
tk.Label(root, text="选择目录:").pack()
path_var = tk.StringVar()
tk.Entry(root, textvariable=path_var, state='readonly').pack()
tk.Button(root, text="浏览", command=select_directory).pack()
tk.Label(root, text="重命名模式:").pack()
tk.Button(root, text="按日期时分秒", command=lambda: rename_files(1)).pack()
tk.Button(root, text="按数字编号", command=lambda: rename_files(2)).pack()
tk.Label(root, text="前缀或后缀:").pack()
entry_prefix = tk.Entry(root)
entry_prefix.pack()
tk.Button(root, text="添加前缀/后缀重命名", command=lambda: rename_files(3)).pack()
root.mainloop()
if __name__ == "__main__":
main()

重命名文件
保留原文件,将重命名后文件复制到rename目录

# os.rename(filepath, new_filepath) #当前目录重命名
# shutil.move(filepath, new_filepath)# 移动并重命名文件
shutil.copy(filepath, new_filepath) # 移动并重命名文件(保留源文件)
这段代码创建了一个简单的 GUI 应用程序,用户可以通过点击按钮来选择一个目录,然后选择不同的重命名模式。模式1按当前日期时间的格式重命名文件;模式2按数字序列(如1, 2, 3...)作为前缀重命名;模式3允许用户输入一个自定义的前缀,该前缀会被添加到每个文件名的前面。在实际使用中,确保你有足够的权限来重命名目标目录下的文件,并且了解重命名可能会导致文件原有的元数据(如创建日期、最后访问时间等)发生变化。
当前文章价值5.91元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

评论已关闭!