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')
    
  • 相关阅读:
    for循环使用详解(c语言版)
    在Spring中轻松写日志
    项目可行性分析的困难
    控制台游戏引擎CGE——贪吃蛇
    python做数据分析pandas库介绍之DataFrame基本操作
    什么是 JWT -- JSON WEB TOKEN
    .net core 单体应用基于策略模式授权
    ABP VNext 初始化数据库时报错
    ABP VNext简介及使用代码生成器ABPHelper自动生成代码
    使用jenkins 在docker中发布.net core应用
  • 原文地址:https://www.cnblogs.com/augustine0654/p/14128908.html
Copyright © 2011-2022 走看看