python遍歷之批次更改檔名

lurenj發表於2024-09-04

遍歷方式更改檔名

import os
import sys


# 定義一個名字叫做rename的函式
def rename(filePath):
    """
    批次重新命名指定路徑下的'.dbf', '.prj', '.shp', '.shx'格式的檔案,重新命名格式:檔案_資料夾名字,
    並刪除'.sbn', '.sbx', '.xml'格式的檔案
    :param filePath: 資料夾的路徑
    :return:
    """
    # 檔案篩選條件
    condition1 = ('.dbf', '.prj', '.shp', '.shx','.txt')
    condition2 = ('.sbn', '.sbx', '.xml')
    #列表
    name = ['one','two','three']
    flag = 0
    # os.walk 查詢檔案
    for root, dirs, files in os.walk(filePath):
        # 資料夾名字
        # mark = root.split('\\')[-1]
        # for迴圈遍歷檔名字
        for fileName in files:
            mark = name[flag]
            flag = flag + 1
            if fileName != sys.argv[0]:
                if fileName.endswith(condition1):
                    os.rename(os.path.join(root, fileName), os.path.join(root, mark + '.' + fileName.split('.')[-1]))
                    print(fileName, '已經重新命名成功了,乖乖,新名字是:', mark + '.'
                          + fileName.split('.')[-1])
                if fileName.endswith(condition2):
                    delFileName = os.path.join(root, fileName)
                    os.remove(delFileName)
                    print(delFileName, '已經成功被移除。')


if __name__ == '__main__':
    filePath = r'C:\Users\Windows11\Desktop\test'
    rename(filePath)


相關文章