使用python3 来完成批量替换文件名

使用 python 来完成批量文件名的替换

需求

有时候 有些图片需要我批量重命名,如果比较少的时候还好, 直接 rename 就行, 如果文件特别多批量命名 就比较重要了,比如 有一个文件夹有一组图片 是有序号的,但是名字没有意思,我想改变一下的他们的名字,变成一个有意义的名字

比如 下面一组图片 ,我希望把 ‘幻灯片’ 换成 ‘bs-01-’
img0
期望替换成 这样:
img1

脚本说明

核心 就是通过找到文件名 ,调用 os.rename() 来完成替换文件名称

脚本有三个参数

  • 第一个path 图片所在文件夹路径
  • 第二个old 想要替换的 字符
  • 第三个 new 替换为 新的字符
# -*- coding: utf-8 -*- 
import os

def batch_rename(path, old, new):
    """
    这个不改变文件的后缀名称 ,并且只替换换 .png 或者 .PNG 结尾的图片
    :param path: 文件夹路径
    :param old: 替换原来的名字
    :param new:  新的名字
    :return:
    """
    # 切换到 path 路径下面
    os.chdir(path)
    filenames = os.listdir(path=path)
    for filename in filenames:

        file, suffix = os.path.splitext(filename)
        if suffix == '.png' or suffix == '.PNG':
            file = file.replace(old, new)

            new_filename = file + suffix
            # 开始替换文件名称
            os.rename(filename, new_filename)
            print(f"{filename!r} rename-> {new_filename!r}  done.")


def start_rename():
    path = 'C:/Users/changfx/Documents/binary-search'
    old = '幻灯片'
    new = 'bs-01-'
    batch_rename(path=path, old=old, new=new)


if __name__ == '__main__':
    start_rename()
    pass

运行结果:
在这里插入图片描述
是不是很方便,再也不用担心大量文件如何重命名啦 。

分享快乐,留住感动. 2020-02-15 17:05:19 --frank
### 使用 Python 批量重命名文件 为了实现批量重命名文件的功能,可以利用 Python 的 `os` 和 `glob` 库。这些库提供了访问操作系统功能的能力,特别是用于文件和目录的操作。 #### 准备工作 确保安装了必要的模块,在大多数情况下,默认的 Python 安装已经包含了所需的全部模块。如果需要额外的包,则可以通过 pip 来安装。 #### 编写脚本 下面是一个简单的例子,展示了如何编写一个能够批量修改指定目录下所有文件名称的 Python 脚本: ```python import os def batch_rename_files(directory, old_str, new_str): """ 对给定目录下的所有文件执行字符串替换作为新的文件名 参数: directory (str): 文件所在的文件夹路径. old_str (str): 原始字符串模式. new_str (str): 新字符串模式. """ try: files = os.listdir(directory) for filename in files: if old_str in filename: src = os.path.join(directory, filename) dst = os.path.join(directory, filename.replace(old_str, new_str)) # 如果目标文件已存在则跳过此次更名 if not os.path.exists(dst): os.rename(src, dst) print(f'Renamed {src} to {dst}') else: print(f'Destination file already exists: {dst}') except Exception as e: print(e) if __name__ == '__main__': dir_path = '/path/to/your/directory' # 替换成实际的目标文件夹路径 original_string = 'old_text' # 将被替代的文字部分 replacement_string = 'new_text' # 用来代替原文字的新字串 batch_rename_files(dir_path, original_string, replacement_string)[^1] ``` 此函数接受三个参数:要处理的文件夹位置、旧字符串以及新字符串。它会遍历该文件夹内的每一个文件,并尝试用新的字符串替换单个文件名字中的旧字符串。需要注意的是,为了避免覆盖现有文件的风险,程序会在每次更改前检查目的文件是否存在;若发现同名文件即停止当前操作并提示用户[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值