Recientemente, al entrenar la red neuronal para la detección de objetivos, se descubrió que los corchetes en los siguientes nombres de archivo y los espacios antes de los corchetes deben eliminarse juntos.
La dirección de almacenamiento de las siguientes imágenes es D:\code\new\JPEGImages
Idea: Debido a que la cantidad de dígitos delante del nombre de la imagen es diferente y el final del nombre de la imagen es (*).jpg, considere contar el segmento. Primero corte el nombre del archivo en dos cadenas a través del carácter ")", luego corte la cadena anterior en dos cadenas a través de "(", y finalmente agregue las tres cadenas y reemplace el nombre de archivo original.
Ejemplo: Por ejemplo, modifique 1_220709 (1).jpg
Primero divida el carácter ")" en 1_220709 (1 y .jpg , luego divida la cadena anterior en 1_220709 y 1 hasta "(" , y finalmente agregue los tres para obtener 1_2207091.jpg
Mira específicamente la implementación del código:
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('成功!')
Después de la modificación del nombre de archivo: