Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - 987123564

#1
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 (python) [Seleccionar]

import os

files = []

for file in os.listdir("."):
   if "P0k3M0N" in file:
       files.append(file)

with open('last.txt', 'r') as f:
   print("Last one: " + f.readline())

with open('last2.txt', 'r') as f:
   print("Last: " + f.readline())

episodes = []

for episode in range(len(files)):
   x = episode.find("x")
   episodes.append(episode[x - 1:x + 2])

index = episodes.find("2x01")
serie = {}

Espero que me ayuden, gracias y un saludo.
#2
Hola, alguien me puede decir qué son, para que sirven y como se usan los diccionarios en python? Gracias y un saludo.
#3
Scripting / Revisar programa python
12 Agosto 2016, 18:07 PM
Hola, he hecho un programa que te manda a unas páginas web para descargar episodios de pokemon según la temporada y episodios que introduzcas. Me encantaría que me dijesen como mejorarlo y algunos errores que pueda tener. Gracias por adelantado  ;-).
Saludos.
Código (python) [Seleccionar]

"""
Nota: Los episodios de pokemon se llaman asi:
P0k3M0N.numero_temporadaxnumero_episodio.Es.avi.mp4
Ejemplo: P0k3M0N.1x01.Es.avi.mp4
"""
import webbrowser
import os
import temporadas
import time

#abre el archivo ultimo que contiene el utlimo episodio al que se accedio
f1 = open('ultimo.txt', 'r')

#abre el archivo ultimos que contiene los utlimos episodios a los que se accedieron
f4 = open('ultimos.txt', 'r')

#variable que guarda si el usuario quiere salir del bucle
salir = False
lista1 = []
lista2 = []

#añade a lista todos los archivos que tengan P0k3M0N en el nombre que hay en el directorio actual
for archivo in os.listdir("."):
   if "P0k3M0N" in archivo:
       lista1.append(archivo)

#añade a lista2 solo el numero del episodio
for i in lista1:
   index = i.find("x")
   str1 = i[index + 1:index + 3]
   lista2.append(str1)

#muestra el ultimo episodio que se puso
print("Ultimo: " + f1.readline())
#muestra los ultimos episodios que se pusieron
print("Ultimos: " + f4.readline())

f1.close()
f4.close()

x = 1
lista3 = []
lista4 = []

for i in range(int(lista2[-1])):
   y = str(x)
   if y in lista2:
       lista3.append(str(x))
   x += 1

cuenta1 = 0
cuenta2 = 0

for i in lista4:
cuenta1 += 1

for i in lista3:
cuenta2 += 1

if cuenta1 != 0:
print("Tienes sueltos los siguientes: " + str(lista4))

if cuenta2 != 0:
print("Tienes seguidos desde el " + lista3[0] + " hasta el " + lista3[-1])


while salir == False:
   print("[1] Temporada completa")
   print("[2] Episodios sueltos")
   print("[3] Salir")
   input2 = input()
   input1 = str(input2)
   if input1 == "3":
       salir = True
   else:
       if input1 == "1":
           temporada = input("Temporada: ")
           episodios = temporadas.episodios(temporada)
           index = episodios.find("-")
           primero = episodios[:index]
           segundo = episodios[index + 1:]
           x = int(primero)
           for i in range(int(segundo) - int(primero)):
               if len(str(x)) == 1:
                   url = "http://seriesblanco.com/serie/979/temporada-" + str(temporada) + "/capitulo-0" + str(x) + "/pokemon.html"
                   webbrowser.open_new_tab(url)
                   time.sleep(20)
               else:
                   url = "http://seriesblanco.com/serie/979/temporada-" + str(temporada) + "/capitulo-" + str(x) + "/pokemon.html"
                   webbrowser.open_new_tab(url)
                   time.sleep(20)
               x += 1
       else:
           input4 = input("Temporada: ")
           temporada = str(input4)
           arch = open('temporadas.txt', 'r')
           total = arch.readlines()
           numero = total[int(input4) - 1]
           search1 = numero.find("-")
           search2 = numero.find("\n")
           segundo = numero[search1 + 1:search2]
           print("Esta temporada tiene " + segundo + " capitulos")
           input3 = input("Episodios: ")
           episodios = str(input3)
           if "-" in episodios:
               index = episodios.find("-")
               primero = episodios[:index]
               segundo = episodios[index + 1:]
               x = int(primero)
               numeros = "123456789"
               for i in range(int(segundo) - int(primero) + 1):
                   if str(x) in numeros:
                       url = "http://seriesblanco.com/serie/979/temporada-" + temporada + "/capitulo-0" + str(x) + "/pokemon.html"
                       webbrowser.open_new_tab(url)
                   else:
                       url = "http://seriesblanco.com/serie/979/temporada-" + temporada + "/capitulo-" + str(x) + "/pokemon.html"
                       webbrowser.open_new_tab(url)
                   x += 1
                   if int(segundo) > 10:
                       time.sleep(10)
               os.remove("ultimos.txt")
               f3 = open('ultimos.txt', 'w')
               f3.write(episodios)
               f3.close()
           elif "," in episodios:
               numeros = "123456789"
               cuenta = 0
               lista = []
               index = episodios.find(",")
               numero = episodios[:index]
               lista.append(numero)
               while index != -1:
                   index = episodios.find(",")
                   print(index)
                   if episodios[index + 1] == " ":
                       episodios = episodios[index + 2:]
                       print(1)
                   elif episodios[index + 1] in numeros:
                       print(episodios)
                       episodios = episodios[index + 1:]
                       print(episodios)
                       print(2)
                   numero = episodios[:index]
                   lista.append(numero)
               lista.pop(-1)
               print(lista)
               for i in lista:
                   cuenta += 1
               for i in range(cuenta):
                   if len(lista[i]) == 1:
                       url = "http://seriesblanco.com/serie/979/temporada-" + temporada + "/capitulo-0" + lista[i] + "/pokemon.html"
                       webbrowser.open_new_tab(url)
                   else:
                       url = "http://seriesblanco.com/serie/979/temporada-" + temporada + "/capitulo-" + lista[i] + "/pokemon.html"
                       webbrowser.open_new_tab(url)
           else:
               if len(episodios) == 1:
                   url = "http://seriesblanco.com/serie/979/temporada-" + temporada + "/capitulo-0" + episodios + "/pokemon.html"
                   webbrowser.open_new_tab(url)
                   os.remove("ultimo.txt")
                   f2 = open('ultimo.txt', 'w')
                   f2.write(episodios)
                   f2.close()
               else:
                   url = "http://seriesblanco.com/serie/979/temporada-" + temporada + "/capitulo-" + episodios + "/pokemon.html"
                   webbrowser.open_new_tab(url)
                   os.remove("ultimo.txt")
                   f2 = open('ultimo.txt', 'w')
                   f2.write(episodios)
                   f2.close()

También necesita unos ficheros .txt y otro módulo.
El otro módulo se llama temporadas.py y contiene lo siguiente:
Código (python) [Seleccionar]

def episodios(n_temporada):
       f = open('temporadas.txt', 'r')
       temporadas = f.readlines()
       temporada = temporadas[int(n_temporada) - 1]
       index = temporada.find('\n')
       return temporada[:index]

Los ficheros .txt se llaman temporadas.txt, que contiene el número de episodios de cada temporada:
1-83
1-34
1-40
1-51
1-64
1-39
1-51
1-53
1-46
1-51
1-51
1-52
1-33
1-49
1-48
1-44
1-47
1-44

Y los otros son ultimo.txt y ultimos.txt que su contenido se actualiza cada vez que se usa el programa.
Ruego respuesta y que les parece.
Saludos y gracias de antemano  ;-).