100个python小工具001:文件重命名

2024-05-17 18:18 100个python小工具001:文件重命名已关闭评论

我们首先需要创建一个图形界面,让用户选择目录,并选择重命名的方式。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元,扫一扫支付后添加微信提供帮助!(如不能解决您的问题,可以申请退款)

你可能感兴趣的文章

来源:每日教程每日一例,深入学习实用技术教程,关注公众号TeachCourse
转载请注明出处: https://teachcourse.cn/3432.html ,谢谢支持!

资源分享

分类:windows 标签:, ,
如何手动用Eclipse默认的keystore导出安卓应用 如何手动用Eclipse默认的keysto
一篇文章,学完TeachCourse2016成长笔记 一篇文章,学完TeachCourse201
Genymotion配置代理服务,联网下载 Genymotion配置代理服务,联网下
ubuntu上传文件到root目录下 ubuntu上传文件到root目录下

评论已关闭!