Python批量重命名图片的实现方法

引言

在日常的开发工作中,经常会遇到需要批量重命名图片的需求。当我们需要对大量图片进行整理、分类或修改时,手动一个一个地去修改文件名是非常繁琐和耗时的。幸运的是,利用Python的强大功能,我们可以编写简单的脚本来实现批量重命名图片的操作。本文将向刚入行的小白开发者介绍如何使用Python来实现这一功能。

整体流程

首先,让我们来看一下整个批量重命名图片的流程。下面是一个表格,展示了这个流程的详细步骤。

journey
    title 批量重命名图片流程
    section 创建新文件夹
    section 遍历图片文件
    section 生成新文件名
    section 重命名图片文件
    section 完成批量重命名图片

步骤1:创建新文件夹

在进行批量重命名之前,我们需要先创建一个新的文件夹来存放修改后的图片。这样做可以避免修改原始图片文件,同时也方便管理和查找。我们可以使用os模块来进行文件夹的创建。下面是相应的代码和注释:

import os

# 创建新文件夹
def create_folder(folder_path):
    """
    创建新文件夹
    :param folder_path: 新文件夹路径
    """
    if not os.path.exists(folder_path):
        os.mkdir(folder_path)
        print(f"成功创建新文件夹:{folder_path}")
    else:
        print("文件夹已存在")

步骤2:遍历图片文件

接下来,我们需要遍历原始文件夹中的所有图片文件。这里我们假设图片文件都是以.jpg为后缀的,如果有其他后缀的图片文件,可以根据需要进行修改。我们可以使用os模块的listdir函数来获取文件夹中的所有文件,然后根据文件的后缀来筛选出图片文件。下面是相应的代码和注释:

import os

# 获取文件夹中的所有图片文件
def get_image_files(folder_path):
    """
    获取文件夹中的所有图片文件
    :param folder_path: 文件夹路径
    :return: 图片文件列表
    """
    image_files = []
    for file_name in os.listdir(folder_path):
        if file_name.endswith(".jpg"):
            image_files.append(file_name)
    return image_files

步骤3:生成新文件名

在进行重命名之前,我们需要生成每个图片文件的新文件名。这里我们可以根据图片文件的序号来生成新的文件名,例如image_001.jpgimage_002.jpg等等。我们可以使用字符串的format方法来实现对文件名的格式化。下面是相应的代码和注释:

# 生成新文件名
def generate_new_filename(file_index):
    """
    生成新文件名
    :param file_index: 文件序号
    :return: 新文件名
    """
    return f"image_{file_index:03d}.jpg"

步骤4:重命名图片文件

现在我们已经有了新文件夹和新文件名,接下来就是实际进行重命名操作了。我们可以使用os模块的rename函数来将原始文件名修改为新的文件名。下面是相应的代码和注释:

# 重命名图片文件
def rename_image_files(folder_path, new_folder_path):
    """
    重命名图片文件
    :param folder_path: 原始文件夹路径
    :param new_folder_path: 新文件夹路径
    """
    image_files = get_image_files(folder_path)
    for file_index, file_name in enumerate(image_files):
        old_file_path = os.path.join(folder_path, file_name)
        new_file_name = generate_new_filename(file_index + 1)
        new_file_path = os.path.join(new_folder_path, new_file_name)
        os.rename(old_file_path, new_file_path)
        print(f"成功重命名文件:{file_name} -> {new_file_name}")

步骤5:完成批量重命名图片