python 批量修改文件名

简介: 尚有欠缺,可以匹配正则。实现一个加强版的文件名修改神器
# -*- coding=utf-8 -*-
import os


def lst_rename(dirpath, o_key, n_key):
    """
    lst_rename :修改当前文件夹内,文件名的关键字(不会修改文件夹)
    参数:dirpath 文件夹路径
         o_key   文件名中待修改字符
         n_key   改成后字符,默认为空
    返回:修改次数
    """
    # 获取文件夹内的文件名列表
    filelist = os.listdir(dirpath)
    # 计数器
    flag = 0
    # 遍历当前文件列表
    for filename in filelist:
        # 文件名绝对路径
        old_filepath = dirpath + os.sep + filename
        # 判断是否为文件夹,是则跳过
        if os.path.isdir(old_filepath):
            continue
        # 替换关键词
        new_filename = filename.replace(o_key, n_key)
        # 新的文件路径
        new_filepath = dirpath + os.sep + new_filename
        # 修改文件名
        os.rename(old_filepath, new_filepath)
        # 打印修改后的文件名
        print(new_filename)
        # 计数
        flag += 1
        # 提示修改次数
    print("已修改", flag, "处")
    # 提示修改结束
    print('end')


def rename_walk(dirpath, o_key, n_key=''):
    """
    rename_walk :遍历修改指定路径内的所有符合要求文件名,含子文件夹
    参数:dirpath 文件夹路径
         o_name   文件名中待修改字符
         n_name   改成后字符,默认为空
    返回:修改次数
    """
    # 初始化计数器
    flag = 0
    # 提示开始
    print('=== action ===')
    # 遍历文件夹
    for wdir, ndir, filename_lst in os.walk(dirpath):
        # 遍历当前文件夹文件名
        for filename in filename_lst:
            # 文件的绝对路径
            oldfilepath = wdir + os.sep + filename
            # 新的文件名
            new_filename = filename.replace(o_key, n_key)
            # 合成新的文件绝对路径
            newfilepath = wdir + os.sep + new_filename
            # 计数
            flag += 1
            # 修改文件名
            os.rename(oldfilepath, newfilepath)
            # 打印修改后的文件名
            print(new_filename)
    # 打印修改次数
    print("已修改", flag, "处")
    # 提示结束修改
    print('==== end ====')


def main():
    dirname = str(input("文件夹绝对路径 >>"))
    o_key = str(input("修改的关键字 >>"))
    n_key = str(input("修改的结果 >>"))
    # lst_rename(dirname, o_key, n_key)
    rename_walk(dirname, o_key, n_key)
    ok = input("按回车结束")


if __name__ == "__main__":
    main()
相关文章
|
3月前
|
Python
Python获取二级目录的第二文件名
Python获取二级目录的第二文件名
|
4月前
|
Python
[python]为指定目录下的文件名批量加前缀
[python]为指定目录下的文件名批量加前缀
|
7月前
|
存储 Python
Python基于文件名将符合标准的文件加以复制
本文介绍基于Python语言,读取一个文件夹,并将其中每一个子文件夹内符合名称要求的文件加以筛选,并将筛选得到的文件复制到另一个目标文件夹中的方法~
Python基于文件名将符合标准的文件加以复制
|
7月前
|
BI Python
python报表自动化系列 - 按照文件名筛选文件
python报表自动化系列 - 按照文件名筛选文件
47 2
|
7月前
|
定位技术 索引 Python
Python遍历多个子文件夹并基于文件名特征将文件复制到不同的目标文件夹
Python遍历多个子文件夹并基于文件名特征将文件复制到不同的目标文件夹
|
7月前
|
存储 Python
基于Python一次性批量修改多个文件的文件名
基于Python一次性批量修改多个文件的文件名
|
7月前
|
BI 测试技术 Python
python报表自动化系列 - 获得指定目录下所有文件名
python报表自动化系列 - 获得指定目录下所有文件名
34 0
|
Python
python 批量修改文件夹的后缀名
python 批量修改文件夹的后缀名
113 0
|
存储 Python
Python批量修改文件名称
本文介绍基于Python语言,按照一定命名规则批量修改多个文件的文件名的方法~
147 1
Python批量修改文件名称
|
XML Java 测试技术
【Python命名规范】Python文件名、类、变量、函数方法等的命名规范
【Python命名规范】Python文件名、类、变量、函数方法等的命名规范