[pyar] Generar nombres de archivos diferentes en base a uno ya existente

Tomas Delvechio tomasdelvechio en yahoo.com.ar
Sab Oct 4 23:00:39 ART 2014


Buenas, estoy haciendo un script que recorre un directorio con muchos
subniveles y archivos, y a estos archivos los tiene que copiar a otro
directorio (afuera del que ya estoy recorriendo), pero todos en el
mismo nivel. Es decir, tengo algo así para recorrer:

DirA
 |
 |-DirB
    |-readme.txt
    |-archivo.txt
 |-DirC
    |-readme.txt
    |-otro-archivo.txt
 ...

Y genero un nuevo directorio así

NuevoDir
 |-readme.txt
 |-readme.txt-0
 |-archivo.txt
 |-otro-archivo.txt
 ...

El problema obvio es que hay nombres que se pueden repetir y tengo que
armar un nuevo nombre (Esto puede ocurrir un numero de veces
indeterminado). Recorro el directorio con os.walk, así que en
principio no tengo el listado completo de archivos (y de hecho, cada
tanto cambia).

Simplificando un poco, lo resolví con este código:

sufijo = 0
nombre_archivo_original = nombre_archivo
while os.path.exists(nombre_archivo):
    nombre_archivo = nombre_archivo_original + "-" + str(sufijo)
    sufijo += 1

Cuando sale de ese bucle, tengo un nombre "valido" (o sea, funciona),
pero me gustaría saber si existe una forma mas "pythonica" de generar
ese nuevo nombre.

Saludos y gracias de antemano.

-- 
Tomas Delvechio


More information about the pyar mailing list