[Python-es] Renombrar subtítulos según archivos de video.

Ricardo Cárdenes ricardo.cardenes en gmail.com
Lun Mayo 9 15:44:51 EDT 2016


No has comentado cómo para, pero sospecho que algún error saltará por algún
lado. El bucle que tienes montado es un poco caótico:

2016-05-09 9:29 GMT-10:00 Manuel <malvarez99 en gmail.com>:

> for video in lista_videos:
>
>     for subtitulo in lista_subtitulos:
>
>         for i in range(0,len(lista_videos)):
>
>
>
>             if subtitulo[i][0:4] == video[i][0:4]:
>
>                 subtitulo_final = video[0:-4] + '.srt'
>
>                 os.rename(subtitulo, subtitulo_final)
>
>
>
>
Ahí estás iterando una vez por cada vídeo. Por cada una de esas
iteraciones, estás recorriendo toda la lista de subtítulos y luego tienes
un tercer bucle dentro (!!) que recorre los índices de la lista de
vídeos... y los aplica como índice al *NOMBRE* de los subtítulos y los
vídeos. Como digo, un tanto caótico. En su lugar podrías hacer:

for video in lista_videos:
    for i in range(len(lista_subtitulos):
        subtitulo = lista_subtitulos[i]
        if subtitulo[:4] == video[:4]:
            subtitulo_final = video[0:-4] + '.srt'
            os.rename(subtitulo, subtitulo_final)
            del lista_subtitulos[i]
            break

Observa que pongo un 'break' si se renombra un subtítulo. Esto es porque
asumo que no habrá dos subtítulos que valgan al mismo vídeo, así que
paramos la búsqueda ahí, para ahorrar ciclos en el bucle (si los hubiera,
el segundo subtitulo *machacaría al primero*, ya que dos ficheros no pueden
tener el mismo nombre...)

También: si hemos sustituido un subtitulo, lo elimino de la lista, para no
tener que usarlo en comprobaciones futuras (que no iban a servir para nada).
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20160509/81e73fee/attachment.html>


Más información sobre la lista de distribución Python-es