用Python的split函数切片字符串批量修改文件名

最近在训练目标检测的神经网络,发现需要把以下的文件名中的括号和括号前面的空格一起去掉。

以下图片存放地址是D:\code\new\JPEGImages

思路:因为图片名称前面的数字位数不同,而后面都是(*).jpg结尾,所以考虑倒数着切片。先通过字符")"把文件名切成两个字符串,之后再把前面的字符串通过" ("切成两个字符串,最后再把三个字符串相加并替换原来的文件名。

举例:比如说修改1_220709 (1).jpg

先通过字符")"分成1_220709 (1.jpg,然后通过" ("把前面的字符串分成1_2207091,最后把三者相加得到1_2207091.jpg

具体看代码实现:

import os #导入模块
filepath = 'D:/code/new/JPEGImages' #存放图片的文件夹地址
listnames = os.listdir(filepath)  #读取文件夹里面的文件名,得到一个字符串列表
for index in listnames:  #通过for循环遍历提取listnames容器中的单个文件名
    mid = index.split(')')[0]   #split分割字符串, 分割之后是两个字符串, 索引[0]取前面的字符串
    string3 = index.split(')')[-1]   #索引[-1]取后面的字符串
    string1 = mid.split(' (')[0]   #分割mid中的字符串, 分割之后是两个字符串, 索引[0]取前面的字符串
    string2 = mid.split(' (')[-1]  #分割mid中的字符串, 分割之后是两个字符串, 索引[-1]取后面的字符串
    old_name = filepath + '/' + index #得到老文件名
    new_name = filepath + '/'+ string1 + string2 + string3 #得到新文件名
    os.rename(old_name, new_name) #找到old_name,用new_name将其替换

print('成功!')

文件名修改之后:

猜你喜欢

转载自blog.csdn.net/m0_63769180/article/details/129064212