[Python-es] Renombrar subtítulos según archivos de video.
Manuel
malvarez99 en gmail.com
Mar Mayo 10 13:37:50 EDT 2016
Muchas gracias, Ricardo.
Con tus modificaciones y consejos, funciona perfectamente. Lo he ampliado un poco y ahora
también me mueve los archivos renombrados a una carpeta.
Referente al triple bucle for, sé que era una idea horrible.(jejejeje)
Nuevamente, gracias por tu ayuda.
> El 9 may 2016, a las 21:44, Ricardo Cárdenes <ricardo.cardenes en gmail.com> escribió:
>
> 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 <mailto: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).
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20160510/0655ef58/attachment.html>
Más información sobre la lista de distribución Python-es