使用 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
運行結果:
是不是很方便,再也不用擔心大量文件如何重命名啦 。