Use la función de división de Python para dividir cadenas y modificar nombres de archivos en lotes

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:

Supongo que te gusta

Origin blog.csdn.net/m0_63769180/article/details/129064212
Recomendado
Clasificación