您的位置:首页 > 编程语言 > Python开发

文件名的批量修改----python

2020-03-01 10:43 148 查看

在修改文件名时所遇到的问题

  • 总结
  • 1. 修改文件名的问题

    • 在修改文件名的时候常常需要修改大量文件
    • 常用方法就是一个个去重命名,但效率十分低
    • 尝试使用python来简化批量重命名过程

    2. 具体代码流程

    (1)-文件夹中包含的文件

    以‘英雄联盟’文件为例:

    '英雄联盟-- (1).txt', '英雄联盟-- (2).txt', '英雄联盟-- (3).txt',
    '英雄联盟-- (4).txt', '英雄联盟-- (5).txt', '英雄联盟-- (6).txt',
    '英雄联盟-- (7).txt'

    (2)-下面的代码尝试部分

    import os
    # 注释部分为失败部分
    # for o_name in list_file:
    #     # if "英雄联盟" not in i:
    #     #     list_file.remove(i)
    #     if '英雄联盟' in o_name:
    #         file_name.append(o_name)
    #
    #         for n_name in file_name:
    #             name_position = n_name.rfind(".")
    #             new_name = n_name[:name_position] + '脚本' + n_name[name_position:]
    #             os.rename(o_name, new_name)
    
    list_file = os.listdir()
    
    file_names = []
    
    f = input("请输入需要修改的文件名:")
    add = input("请输入文件添加文字:")
    
    for i in list_file:
    # if "英雄联盟" not in i:
    #     list_file.remove(i)
    if f in i:
    file_names.append(i)
    
    for j in file_names:
    name_position = j.rfind(".")
    new_name = j[:name_position] + add + j[name_position:]
    # new_names.append(new_name)
    os.rename(j, new_name)
    
    # 替换名字
    # for a in zip(file_names, new_names):  # 一一对应
    #     os.rename(a[0], a[1])
    # 替换名字
    # for a in file_names:
    #     for b in new_names:
    #         os.rename(a, b)

    (3)-精简后

    import os
    # 列出文件夹中的文件名
    list_file = os.listdir()
    
    file_names = []
    # 输入目标参数信息
    f = input("请输入需要修改的文件名:")
    # 输入修改信息
    add = input("请输入文件添加文字:")
    # 筛选参数
    for i in list_file:
    if f in i:
    file_names.append(i)
    # 修改文件名
    for j in file_names:
    # 设置定位
    name_position = j.rfind(".")
    new_name = j[:name_position] + add + j[name_position:]
    os.rename(j, new_name)

    (4)-输入参数

    请输入需要修改的文件名:英雄联盟
    请输入文件添加文字:copy

    输出:

    '英雄联盟-- (1)copy.txt', '英雄联盟-- (2)copy.txt', '英雄联盟-- (3)copy.txt',
    '英雄联盟-- (4)copy.txt','英雄联盟-- (5)copy.txt', '英雄联盟-- (6)copy.txt',
    '英雄联盟-- (7)copy.txt'

    总结

    • 尝试使用python中的os模块来解决
    • os.listdir 列出文件中的文件名
    • os.rename 可直接修改文件名
      – os.rename(old, new)
    • 点赞
    • 收藏
    • 分享
    • 文章举报
    阿文没有假期 发布了2 篇原创文章 · 获赞 0 · 访问量 25 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: