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

下面详细讲解一下“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日

相关文章

  • 使用MockMvc进行controller层单元测试 事务自动回滚的完整案例

    以下是关于使用MockMvc进行controller层单元测试的完整攻略,包含两个示例说明: 1. 添加依赖 首先,您需要在项目的pom.xml文件中添加MockMvc和JUnit的依赖。示例: <dependencies> <!– 添加MockMvc依赖 –> <dependency> <groupId>…

    other 2023年10月19日
    00
  • windows下安装redis客户端

    Windows下安装Redis客户端 Redis是一个开源内存数据库,也是一个键值存储数据库,它支持多种数据结构类型,并且适合于高速读写的场景。Redis的客户端通常是通过REDIS协议来进行连接的。 本文将介绍如何在Windows系统下安装Redis客户端,并通过命令行使用Redis客户端。 步骤一:下载Redis客户端 在Redis官方下载站(https…

    其他 2023年3月29日
    00
  • Android iOS常用APP崩溃日志获取命令方法

    以下是获取Android和iOS常用APP崩溃日志的命令方法的完整攻略: Android常用APP崩溃日志获取命令方法 首先,确保您的Android设备已连接到计算机,并已启用开发者选项和USB调试模式。 打开命令行终端,并使用以下命令查看已连接的设备列表: adb devices 选择要获取崩溃日志的目标应用程序包名。您可以使用以下命令获取设备上已安装应用…

    other 2023年10月14日
    00
  • Bash Shell中忽略大小写的设置方法

    当在Bash Shell中需要忽略大小写时,可以通过设置nocaseglob选项来实现。下面是设置方法的完整攻略: 打开终端并进入Bash Shell。 输入以下命令来设置nocaseglob选项: bash shopt -s nocaseglob 该命令将打开nocaseglob选项,使Shell在执行文件名匹配时忽略大小写。 现在,你可以使用通配符来进行…

    other 2023年8月16日
    00
  • JavaScript实现二叉树层序遍历

    当我们需要对一个二叉树进行遍历时,可以使用不同的方法来实现。其中一种是二叉树层序遍历,也称为广度优先遍历。层序遍历是从上到下和从左到右遍历二叉树,即按照二叉树每一层从左到右的顺序进行遍历。 实现二叉树层序遍历主要分为两步,首先需要构建好二叉树,然后再使用队列的数据结构进行层序遍历。在 JavaScript 中,我们可以使用对象来表示二叉树的节点,其包括具有 …

    other 2023年6月27日
    00
  • 关于opengl:使用glblitframebuffer显示纹理

    下面是关于“使用glBlitFramebuffer显示纹理”的完整攻略,包括步骤和示例说明。 简介 glBlitFramebuffer是OpenGL中的函数,用将一个帧缓冲区的内容复制到另一个帧缓冲区。它可以用于将一个帧缓冲区的内容显示到屏上,也可以于将一个帧缓冲区的内容复制到另一个帧缓冲区中。 步骤 下面是使用glBlitFramebuffer显示纹理的步…

    other 2023年5月8日
    00
  • win2012配置DAC环境/用户和设备声明/资源属性及文件分类

    配置DAC环境 在 Windows Server 2012 系统中,我们可以通过以下步骤配置 DAC(Dynamic Access Control)环境: 确认已启用“文件服务器资源管理器”功能。 在“文件服务器资源管理器”中选择“动态访问控制”,点击“安装策略或引用现有策略”。 配置访问控制策略,如制定用户访问控制、设备访问控制、资源属性控制等。 在配置 …

    other 2023年6月25日
    00
  • Android手机联系人带字母索引的快速查找

    Android手机联系人带字母索引的快速查找攻略 在Android手机上,联系人带字母索引的快速查找功能可以帮助您快速定位和浏览联系人列表。以下是详细的攻略,包括设置和使用示例。 设置字母索引 打开手机的联系人应用程序。 在联系人列表页面,找到设置图标(通常是一个齿轮或三个垂直点)并点击它。 在设置菜单中,寻找“字母索引”或类似的选项,并确保它处于启用状态。…

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