python文件名批量重命名脚本实例代码

yizhihongxing

下面详细讲解一下“python文件名批量重命名脚本实例代码”的完整攻略。

简要说明

批量重命名脚本是一种能够帮助我们快速批量修改多个文件名的工具,使用Python语言编写,具体实现思路是遍历指定的目录,对目录下的所有文件进行遍历,通过正则表达式匹配文件名,然后通过字符串的替换方法生成新的文件名,最后使用os模块中的rename方法对文件进行重命名。

实现步骤

  1. 导入必要的模块

我们需要使用os模块进行文件操作,同时re模块进行正则表达式匹配。

import os
import re
  1. 遍历指定目录

使用os.walk()方法可以遍历指定目录中的所有文件和子文件夹。

def walk_dir(root_dir):
    for lists in os.listdir(root_dir):
        path = os.path.join(root_dir,lists)
        if os.path.isdir(path):
            walk_dir(path)
        else:
            rename_file(path)
  1. 正则表达式匹配文件名

在扫描文件时,我们可以使用正则表达式来匹配需要修改的文件名。示例代码中是以“”为分隔符,将文件名按照“”分隔成多个部分,然后挑选需要修改的部分进行替换。

def rename_file(path):
    if not os.path.isfile(path):
        return

    file_name = os.path.basename(path)
    (name,ext) = os.path.splitext(file_name)

    # 分割部分,选取要替换的部分
    parts = name.split("_")
    new_name = "new_{}".format(parts[-1]) # 替换了最后一个部分

    new_file_name = os.path.join(os.path.dirname(path), new_name + ext)
    os.rename(path, new_file_name)
  1. 执行重命名操作

得到新的文件名之后,使用os模块中的rename()方法就可以完成对文件名的修改操作了。

new_file_name = os.path.join(os.path.dirname(path), new_name + ext)
os.rename(path, new_file_name)

示例说明

假设我们有一个目录,其中有多个文件,文件名为“test_1.jpg”,“test_2.jpg”,“test_3.jpg”等形式。我们想要对这些文件名进行修改,将它们重命名为“new_1.jpg”,“new_2.jpg”,“new_3.jpg”。

import os
import re

def walk_dir(root_dir):
    for lists in os.listdir(root_dir):
        path = os.path.join(root_dir,lists)
        if os.path.isdir(path):
            walk_dir(path)
        else:
            rename_file(path)

def rename_file(path):
    if not os.path.isfile(path):
        return

    file_name = os.path.basename(path)
    (name,ext) = os.path.splitext(file_name)

    # 分割部分,选取要替换的部分
    parts = name.split("_")
    new_name = "new_{}".format(parts[-1])

    new_file_name = os.path.join(os.path.dirname(path), new_name + ext)
    os.rename(path, new_file_name)

if __name__ == '__main__':
    root_dir = "./test_folder"
    walk_dir(root_dir)

在执行脚本之前,需要保证当前的工作目录下存在一个名为“test_folder”的目录,目录中包含需要修改文件名的文件。

执行以上代码,就可以将test_folder目录中的所有文件名修改成new_1.jpg,new_2.jpg,new_3.jpg形式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python文件名批量重命名脚本实例代码 - Python技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • Ubuntu安装包信息如何查看

    Ubuntu安装包信息如何查看 在Ubuntu系统中,你可以使用apt命令来查看安装包的信息。以下是详细的攻略: 查看已安装的包信息 要查看已安装的包的信息,可以使用dpkg命令。运行以下命令: dpkg -l 这将列出系统中所有已安装的包,包括包名、版本号、描述等信息。 查看可用的包信息 要查看可用的包的信息,可以使用apt命令。运行以下命令: apt s…

    other 2023年10月13日
    00
  • 详解Java如何使用注解来配置Spring容器

    Java注解是一种实现反射机制的标记,使用注解可以将特定信息与程序中的元素进行关联,更加灵活地配置系统。在Spring框架中使用注解可以方便地配置Spring容器。 下面是详细讲解Java如何使用注解来配置Spring容器的完整攻略: 1. 添加注解配置文件 Spring框架推荐我们将注解配置信息放在单独的Java类中,作为Spring的配置文件,以@Con…

    other 2023年6月27日
    00
  • vue封装axios与api接口管理的完整步骤

    下面我将详细讲解vue封装axios与api接口管理的完整步骤。 1. 安装axios 在开始封装axios之前,我们需要先安装axios。可以通过npm进行安装: npm install axios –save 2. 封装axios 封装axios的目的是为了在项目中统一处理请求和响应,方便管理和维护。以下是封装axios的完整步骤: 2.1 创建axi…

    other 2023年6月25日
    00
  • vue使用自定义icon图标的方法

    Vue使用自定义icon图标的方法可以分为以下几步: 1. 准备icon图标 首先需要准备好自定义icon图标,在这里我假设我们已经有了一些自定义icon的svg文件,这些svg文件可以通过一些工具(如iconfont、阿里巴巴图标库等)生成,也可以手工编写,例如: <svg xmlns="http://www.w3.org/2000/svg…

    other 2023年6月25日
    00
  • python装饰器实例大详解

    Python装饰器实例大详解 装饰器是Python中一种强大的编程工具,它可以用于修改、扩展或包装函数或类的行为。本攻略将详细讲解Python装饰器的使用方法,并提供两个示例说明。 什么是装饰器? 装饰器是一种特殊的函数,它接受一个函数作为输入,并返回一个新的函数作为输出。装饰器可以在不修改原始函数代码的情况下,对其行为进行修改或扩展。 装饰器的语法 装饰器…

    other 2023年8月20日
    00
  • C语言数组全面总结梳理

    C语言数组全面总结梳理 基本概念 数组是一种数据结构,在C语言中,它可以被定义为一个有限元素的序列,每个元素都有一个固定的类型,并通过递增的索引来访问。假设我们定义了一个包含10个整数的数组,我们可以通过a[0]、a[1]、a[2]等相应的索引来访问它们。 从技术上讲,数组是由相同的数据类型的元素组成的连续内存空间。当我们声明一个数组时,我们需要指定元素的类…

    other 2023年6月25日
    00
  • Vue封装全局toast组件的完整实例

    下面是关于“Vue封装全局toast组件的完整实例”的详细攻略: 一、需求描述 我们需要封装一个可全局使用的 toast 组件,并且需要支持以下功能: 可以显示文字和图标 可以设置显示时间和位置 支持自定义样式 二、准备工作 在开始封装 toast 组件之前,我们需要先准备好 Vue 项目: 安装 Vue:使用命令 npm install vue 或 yar…

    other 2023年6月25日
    00
  • Android 实现左滑出现删除选项

    当在Android应用中实现左滑出现删除选项时,可以使用RecyclerView和ItemTouchHelper类来完成。以下是实现该功能的完整攻略: 首先,在你的布局文件中添加一个RecyclerView组件,用于显示列表项。例如: <androidx.recyclerview.widget.RecyclerView android:id=\&quo…

    other 2023年9月7日
    00
合作推广
合作推广
分享本页
返回顶部