2014-07-21 3 views
1

J'ai un script Python que ma famille utilise pour jouer une émission de télévision pour enfants au hasard sur notre Media Center. Ma femme me dit que le programme semble favoriser la même sélection de spectacles. Y at-il un moyen de le rendre plus aléatoire afin qu'il prenne des options différentes?Ouvrir un fichier aléatoire avec Python Script

Merci d'avance.

Voici ce que je suis actuellement en utilisant:

import glob,random,os 
files = glob.glob("D:\Recorded TV\Bubble Guppies*.wtv") 
files.extend(glob.glob("D:\Recorded TV\Doc McStuffins*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\Mickey Mouse Clubhouse*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\Octonauts*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\Team Umizoomi*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\Jake and the Never Land Pirates*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\PAW Patrol*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\Yo Gabba Gabba*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\Henry Hugglemonster*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\Wallykazam*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\Dora the Explorer*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\Jungle Junction*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\Little Einstein*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\The Wonder Pets*.wtv")) 
files.extend(glob.glob("D:\Recorded TV\WordWorld*.wtv")) 
file = random.choice(files) 
print "Opening file %s..." % file 
cmd = "rundll32 url.dll,FileProtocolHandler \"" + file + "\"" 
os.system(cmd) 
+1

Essayez 'random.seed()' avant votre appel 'random.choice()'. Cela va graine le flux 'random' basé sur l'heure du système (une valeur pseudo-aléatoire). – CoryKramer

+1

Cela semble être un problème de probabilité plus que toute autre chose. Je suppose que certains spectacles ont plus d'épisodes que d'autres? Ou le même épisode est-il sélectionné plus souvent? –

+1

Il pourrait également y avoir des problèmes psychologiques, par ex. biais de confirmation. Vous pourriez envisager de conserver une liste des épisodes récemment joués (ou même des spectacles) et de les rejeter s'ils sont retapés. – jonrsharpe

Répondre

0

Comme l'a dit @ paul-Seeb, il y a probablement plus de programmes dans une sélection. Je choisis d'abord une sélection au hasard puis un spectacle là-bas si c'est ce que tu préfères.

selections = [ 
    'Doc McStuffins', 
    'Mickey Mouse Clubhouse', 
    ... 
    'WordWorld', 
] 
selection = choice(selections) 
shows = glob('D:\Recorded TV\{}*.wtv'.format(selection)) 
show = choice(shows) 
+0

Merci à tous pour vos commentaires. J'aime vraiment l'idée de choisir la sélection en premier. Certains spectacles ont certainement plus d'épisodes. Ma femme me dit qu'il semble favoriser environ 20 épisodes sur peut-être 250+. Je vais essayer la route des sélections et voir ce qui se passe. – aldi32

Questions connexes