elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Python - Código que crea un diccionario al llegar a cierto número
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Python - Código que crea un diccionario al llegar a cierto número  (Leído 2,762 veces)
987123564

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Python - Código que crea un diccionario al llegar a cierto número
« en: 14 Agosto 2016, 21:59 pm »

Buenas, tengo un programa que analiza el nombre de episodios de pokémon y quiero que al llegar a un cierto episodio añada a un diccionario una clave con el número de la temporada y el valor con una lista de los episodios de esa temporada.
El formato de los episodios es así:

P0k3M0N.1x01.Es.avi.mp4

Tengo este código para que se hagan una idea:
Código
  1. import os
  2.  
  3. files = []
  4.  
  5. for file in os.listdir("."):
  6.    if "P0k3M0N" in file:
  7.        files.append(file)
  8.  
  9. with open('last.txt', 'r') as f:
  10.    print("Last one: " + f.readline())
  11.  
  12. with open('last2.txt', 'r') as f:
  13.    print("Last: " + f.readline())
  14.  
  15. episodes = []
  16.  
  17. for episode in range(len(files)):
  18.    x = episode.find("x")
  19.    episodes.append(episode[x - 1:x + 2])
  20.  
  21. index = episodes.find("2x01")
  22. serie = {}
Espero que me ayuden, gracias y un saludo.


« Última modificación: 15 Agosto 2016, 00:15 am por 987123564 » En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Python - Código que crea un diccionario al llegar a cierto número
« Respuesta #1 en: 14 Agosto 2016, 23:01 pm »

Estaría bueno que uses el foro para solventar dudas no para que te hagan la tarea!
Citar
quiero que al llegar a un cierto episodio añada a un diccionario una clave con el número de la temporada y el valor con una lista de los episodios de esa temporada.

1)¿en qué parte del código está la comparación con el número de episodios ?
2)ya preguntaste de diccionarios, pues ¿dónde lo declaraste?
3)Hay varios métodos para agregar datos ¿cuál intentaste usar?
4)engel lex te mostró un método en otro de tus post , ni ese veo en tú código.

por lo tanto desarrolla el código que quieres y si no anda, pues bien, ahí los que saben seguro te ayudarán, aunque si tenés suerte alguien te hace lo que querés.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Python - Código que crea un diccionario al llegar a cierto número
« Respuesta #2 en: 15 Agosto 2016, 10:27 am »

Puedes hacerlo de la siguiente manera:

Código
  1. # -*- coding: Windows-1252 -*-
  2.  
  3. import os, re, sys
  4.  
  5. episodes = {}
  6.  
  7. for file in os.listdir('.\\'):
  8.  match = re.match(r'(?P<filename>P0k3M0N\.(?P<season>(\d+))x(?P<chapter>\d+).+\.avi\.mp4)', file)
  9.  if match:
  10.    episodes.setdefault(match.group('season'), []).append(match.group('filename'))
  11.  
  12. for key, value in episodes.iteritems():
  13.  print key, value
  14.  
  15. sys.exit(0)

He utilizado expresiones regulares con agrupaciones nombradas para simplificar la tarea e intentar que te resulte más comprensible la obtención de esos valores del nombre.

Resultado de ejecución:
Código:
1 ['P0k3M0N.1x01.Es.avi.mp4', 'P0k3M0N.1x02.Es.avi.mp4']
2 ['P0k3M0N.2x01.Es.avi.mp4', 'P0k3M0N.2x02.Es.avi.mp4', 'P0k3M0N.2x03.Es.avi.mp4']

PD: No se si te has fijado en el detalle de que esos archivos de video que descargaste tienen doble extensión... deberías cojer un renombrador de archivos y así de paso arreglas ese formato tan feo lleno de puntos y números reemplazando vocales -.- (c0m0 0d10 qu3 h4g4n 3s0)

Saludos
« Última modificación: 15 Agosto 2016, 10:57 am por Eleкtro » En línea



987123564

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Python - Código que crea un diccionario al llegar a cierto número
« Respuesta #3 en: 15 Agosto 2016, 16:45 pm »

@Elektro muchas gracias, se ve que sabes mucho de python ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines