zoukankan      html  css  js  c++  java
  • Python批量修改文件名

    可以将步骤主要分为三个部分:

    1. 获取路径下的所有文件
    2. 条件判断
    3. 修改文件名

    需要用到的模块

    • os 模块
    函数 功能描述
    os.path.exists(path) 路径存在则返回True,路径损坏返回False
    os.listdir(path) 返回path指定的文件夹包含的文件或文件夹的名字的列表
    os.path.splitext(file) 分割文件名与拓展名
    os.path.join(path1,path2,str) 把路径与文件名结合成一个路径
    os.rename(old,new) 对文件进行重命名
    1. 判断路径是否存在,并获取路径下所有文件
    # 判断路径是否存在
    if not os.path.exists(target_path):
        raise Exception('path is not exist!')
    # 获取指定路径下的所有文件,存放在一个列表中
        filelist = os.listdir(target_path)
    

    路径不存在报错,将所有的文件都存放在一个列表中,用for循环来遍历得到每一个文件名

    2.条件判断:只修改同一类型的文件,不修改文件夹
    # 分割文件名与拓展名,用索引来提取
    filename = os.path.splitext(file)
    # 只修改文件,不修改文件夹
    if not filename[1]:
        continue
    # 只修改同一类型文件
    if filename[1] == file_type or filename[1] == '.' + file_type:
        newfilename = str(count).zfill(3) + filename[1]
    
    3.修改文件名
    # 修改名字
    old_path = os.path.join(target_path, file)
    new_path = os.path.join(target_path, newfilename)
    os.rename(old_path, new_path)
    

    效果

    完整程序
    import os
    
    # 批量修改文件名
    def filename_modify(target_path, file_type):
        '''
        :param target_path: 目标路径
        :param file_type: 修改文件类型
        :return:
        '''
        # 判断路径是否存在
        if not os.path.exists(target_path):
            raise Exception('path is not exist!')
        # 获取指定路径下的所有文件,存放在一个列表中
        filelist = os.listdir(target_path)
        count = 1
        for file in filelist:
            # 分割文件名与拓展名,用索引来提取
            newfilename = file
            filename = os.path.splitext(file)
            # print('文件名:{}, 拓展名:{}'.format(filename[0], filename[1]))
            # 只修改文件,不修改文件夹
            if not filename[1]:
                continue
            # 只修改同一类型文件
            if filename[1] == file_type or filename[1] == '.' + file_type:
                newfilename = str(count).zfill(3) + filename[1]
                count += 1
    
            # 修改名字
            old_path = os.path.join(target_path, file)
            new_path = os.path.join(target_path, newfilename)
            os.rename(old_path, new_path)
    
    if __name__ == '__main__':
        path = './test'
        filename_modify(path, '.txt')
    
  • 相关阅读:
    一文搞定 Spring Boot & Shiro 实战
    CPU 到底是怎么认识代码的?涨姿势了!
    Java 可重入锁内存可见性分析
    大牛总结的 Git 使用技巧,写得太好了!
    厉害了,如何搭建一套自己的私有网盘?
    深入浅出 Java 中 JVM 内存管理
    SLA服务可用性4个9是什么意思?怎么达到?
    解决springboot配置@ControllerAdvice不能捕获NoHandlerFoundException问题
    mybatis多参数使用方法且其中有的参数是多个值使用in查询
    Optional导致的 java.util.NoSuchElementException: No value present
  • 原文地址:https://www.cnblogs.com/augustine0654/p/14128908.html
Copyright © 2011-2022 走看看