Al trabajar con archivos y genero versiones o derivadas de ellos suelo utilizar el nombre original añadiendo algún sufijo para su identificación. Para ello es necesario dividir el nombre y la extensión añadir el sufijo y volver a ensamblar.

No esperéis descubrir nada nuevo. Hace tiempo, al poco de mi incursión en Python desde C, porté algunas funciones que usaba frecuentemente, entre ellas la función splitfilename. Posteriormente descubrí la existencia de os.path.splitext() que es nativa y hace exactamente lo mismo, ya es cuestión de preferencias.

De cualquier modo, independientemente del medio son funciones que resultan de mucha utilidad por lo que creo que merecen estar por aquí. Seguro que a alguien le aporta.

def splitfilename(filename):
    sname=""
    sext=""
    i=filename.rfind(".")
    if(i!=0):
        n=len(filename)
        j=n-i-1
        sname=filename[0:i]
        sext=filename[-j:]    
    return sname, sext

Uso

Se pasa el nombre de archivo y devuelve nombre y extensión.

Ej: splitfilename(«fotodenanomiperro.jpg«)

devuelve: fotodenanomiperro y jpg

¿Para que sirve?

Por ejemplo al trabajar con imágenes y son necesarias derivadas, variaciones de una misma imagen para distintos propósitos.

Por ejemplo, imágenes en blanco y negro que se llamen nombreoriginal_bn_.extensionoriginal

path="/home/altaruru/tmp/"
files=ls1(path)
for file in files:
    filea=path + file # archivo original
    sext, sfilename = splitfilename(file)    
    filebn = path + sfilename + "_bn_" + "." + sext # archivo blanco y negro    
    bn(filea, filebn)

Los thumbnails de imágenes nombreoriginal_thumb_.extensionoriginal

Las versiones de un mismo documento nombreoriginal_v02_.extensionoriginal, …

 

* la función ls1 puedes encontrarla en cómo listar los archivos de un directorio

 

No tiene más, espero os ayude.

Saludos.

Deja tu comentario