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

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)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值