使用 python 来完成批量文件名的替换
需求
有时候 有些图片需要我批量重命名,如果比较少的时候还好, 直接 rename 就行, 如果文件特别多批量命名 就比较重要了,比如 有一个文件夹有一组图片 是有序号的,但是名字没有意思,我想改变一下的他们的名字,变成一个有意义的名字
比如 下面一组图片 ,我希望把 ‘幻灯片’ 换成 ‘bs-01-’
期望替换成 这样:
脚本说明
核心 就是通过找到文件名 ,调用 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
运行结果:
是不是很方便,再也不用担心大量文件如何重命名啦 。