欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文件名的批量修改----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)