使用python實現快速批量重命名

適用場景

文件名格式不對,但目錄層級沒問題,不需要移動文件位置,只是重命名
另外腳本耗時越短越好

解決思路

  1. 使用os.walk遍歷每一個子目錄
  2. 遍歷當前子目錄的每一個文件
  3. 檢查當前文件是否需要重命名
  4. 調用os.rename重命名

示例代碼

import os

BASE = "D:\\1"   # 所有文件的根目錄

for root, dirs, files in os.walk(BASE):
    if len(files) > 0:  # 如果此目錄有文件
        for file in files:   # 遍歷此目錄下的每一個文件
            if file.find("c2") != -1:   # 如果文件名中包含c2字樣
                new_file = file.replace("c2", "c1")  # 則將其改成c1
                try:
                    os.chdir(root)   # 修改之前將當前工作目錄切換到文件所在目錄,否則os.rename會失敗
                    os.rename(file, new_file)  # 調用操作系統的重命名功能
                except OSError as e:
                    print (e)
                    quit(2)

注意

如果不加os.chdir調用,則報錯

D:\>python infra.py
[WinError 2] 系統找不到指定的文件。: '01_01_c2.jpg' -> '01_01_c1.jpg'

如果新改的名字跟其他文件重名,則會報錯

D:\>python infra.py
[WinError 183] 當文件已存在時,無法創建該文件。: '01_01_c2.jpg' -> '01_01_c1.jpg'

評價

經實測,速度很快,推薦大家試用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章