一、运行效果

本程序旨在对指定目录下的PDF文件进行批量重命名。执行程序后,原文件名如“36266郜一凡200304000038内部调拨.pdf”,会被修改为“1234一二200304000038保留规则.pdf”。以下是修改前后的直观展示:

修改前:

修改后:

二、功能解析

程序运行时,用户需输入待修改文件所在的目录。程序会基于输入目录,对其中的PDF文件执行重命名操作。重命名逻辑为保留文件名中间符合特定格式的部分,同时修改文件的前缀和后缀。

三、代码实现

3.1 Python 代码

import os 
import re
import tkinter as tk
from tkinter import messagebox


def rename_pdf_files(folder_path, new_prefix, new_suffix):
    for filename in os.listdir(folder_path):
        if filename.endswith('.pdf'):
            match = re.search(r'(\d+).*?(\d+)', filename)
            if match:
                middle_part = match.group(2)
                new_filename = f"{new_prefix}{middle_part}{new_suffix}.pdf"
                old_file_path = os.path.join(folder_path, filename)
                new_file_path = os.path.join(folder_path, new_filename)
                try:
                    os.rename(old_file_path, new_file_path)
                    print(f"已将 {filename} 重命名为 {new_filename}")
                except Exception as e:
                    print(f"重命名 {filename} 时出错: {e}")


def start_renaming():
    folder_path = entry.get()
    if not os.path.exists(folder_path):
        messagebox.showerror("错误", f"你输入的路径 {folder_path} 不存在,请检查后重新输入。")
        return
    new_prefix = '1234一二'
    new_suffix = '保留规则'
    rename_pdf_files(folder_path, new_prefix, new_suffix)
    messagebox.showinfo("完成", "文件重命名操作已完成。")


root = tk.Tk()
root.title("PDF 文件重命名")
root.geometry("400x400")

label = tk.Label(root, text="请输入文件所在路径:")
label.pack(pady=20)

entry = tk.Entry(root, width=50)
entry.pack(pady=10)

button = tk.Button(root, text="开始重命名", command=start_renaming)
button.pack(pady=20)

root.mainloop()

3.2 代码详解

核心重命名函数rename_pdf_files

该函数接受三个参数:待处理文件所在目录folder_path、新文件名前缀new_prefix、新文件名后缀new_suffix

  1. 遍历文件:使用os.listdir遍历指定目录下的所有文件,并通过filename.endswith('.pdf')筛选出PDF文件。
  2. 提取中间部分:借助正则表达式re.search(r'(\d+).*?(\d+)', filename)匹配并提取文件名中的中间数字部分。
  3. 构建新文件名:依据提取的中间部分、新前缀和新后缀,构建新的文件名new_filename
  4. 重命名文件:使用os.rename将旧文件重命名为新文件,并在控制台打印重命名信息,若出现错误,也会打印错误信息。

启动重命名函数start_renaming

该函数负责获取用户输入的目录路径,并进行路径有效性检查。若路径不存在,弹出错误提示框。在确认路径有效后,设定新的前缀和后缀,调用rename_pdf_files函数执行重命名操作,并在操作完成后弹出提示框。

图形界面搭建

  1. 创建主窗口:使用tk.Tk()创建名为“PDF 文件重命名”的主窗口,并设置窗口大小为400x400像素。
  2. 添加组件:创建提示标签、输入框和开始按钮。提示标签用于引导用户输入路径,输入框供用户输入文件目录,开始按钮则绑定start_renaming函数,点击后触发重命名操作。
  3. 启动主循环:使用root.mainloop()启动图形界面的主循环,确保界面能够响应用户操作。

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章

1 2 3 4 5