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)