2010-05-22 8 views
-2

Comment puis-je utiliser la fonction aléatoire (en Python) pour choisir une chaîne dans une liste txt?Fonction aléatoire en Python


je veux au hasard dans une liste:

import random 
import sys 
filename = sys.argv[1] 
f = open(filename) 
f.close() 
print random.choice(f) 

est ce code ok?

+2

choix sonne juste. – Stephen

+1

Au moins faire semblant de regarder la très, très belle documentation avant de poser une question ... –

+0

Vous pourriez éditer le titre ou développer votre question. Comme écrit il n'y a aucune mention de n'importe quel problème spécifique avec la fonction aléatoire elle-même. – bernie

Répondre

3
> import random 
> list_of_strings = open(sys.argv[1]).readlines() 
> randomly_chosen_string = random.choice(list_of_strings) 
> help(random.choice) 
Help on method choice in module random: 

choice(self, seq) method of random.Random instance 
Choose a random element from a non-empty sequence. 
1
import random 

file = open("file.txt", "r") 
list = file.readlines() 
def getline(): 
    return list[random.randint(0,(len(list) - 1))] 

getline() 
+0

en supposant que fichier.txt contient sonething comme aaa bbb ccc etc ... (un mot par ligne) alors qui fonctionnera – krzysz00

+0

+1 par souci de concision, et bienvenue à SO! Mais n'utilisez pas 'list' pour un nom de variable, car' list() 'est un nom de fonction en Python. En outre, vous devriez regarder dans les instructions 'with' pour la lecture de fichiers. :] –

+0

désolé, ne sais pas beaucoup de Python et ce fut la première chose à venir dans ma tête et BTW, je pensais que lisp commun ne s'étouffe pas là-bas étant une variable ET une fonction nommée liste, alors pourquoi Python – krzysz00

Questions connexes