欢迎访问宙启技术站
智能推送

使用Template()实现批量文件重命名功能

发布时间:2023-12-23 21:07:42

批量文件重命名是指将同一目录下的多个文件按照一定规则进行批量更改名称。在Python中,可以使用标准库中的os模块来对文件进行操作,使用Template()函数则可以实现文件重命名的批量操作。下面是一个简单的示例,展示如何使用Template()实现批量文件重命名功能。

首先,我们需要导入相关的模块和函数:

import os
from string import Template

接下来,我们定义一个函数batch_rename()来执行批量文件重命名:

def batch_rename(directory, template_str):
    template = Template(template_str)  # 创建一个模板对象
    
    # 遍历目录下的所有文件
    for filename in os.listdir(directory):
        if not os.path.isfile(os.path.join(directory, filename)):
            continue
        
        new_name = template.substitute(filename=filename)  # 使用模板替换文件名
        os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))  # 重命名文件

batch_rename()函数中,我们首先使用Template()函数创建了一个模板对象template。接下来,使用os.listdir()函数遍历指定目录下的所有文件,使用os.path.isfile()函数判断是否为文件。如果是文件,则使用模板对象的substitute()方法替换文件名中的特定部分,并通过os.rename()函数将文件重命名。

下面是一个使用例子,假设我们有一个目录下包含了很多图片文件,命名规则为image_001.pngimage_002.pngimage_003.png等等,我们想要将所有文件的名称改为photo_001.jpgphoto_002.jpgphoto_003.jpg等等,只需要调用batch_rename()函数并传入正确的参数即可实现批量重命名:

directory = '/path/to/directory'  # 替换成实际目录的路径
template_str = 'photo_${filename.split("_")[1]}.jpg'  # 定义命名规则
batch_rename(directory, template_str)  # 执行批量文件重命名

在这个例子中,我们使用了Template()函数创建了一个模板对象,并使用${filename.split("_")[1]}的形式来获取文件名中下划线后面的部分(如001002等)。最后,调用batch_rename()函数,传入目录路径和模板字符串,即可实现批量文件重命名。