文件名的批量修改----python
程序员文章站
2022-04-17 14:04:42
...
在修改文件名时所遇到的问题
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)