Python help ---> случайный выбор имени из текстового файла - PullRequest
1 голос
/ 13 сентября 2011

Я хочу иметь список имен, таких как «Джон, Джек, Дэниелс, Виски, Сьюзан, Алекс» в текстовом файле с именем «Имена».

Теперь я хочу импортировать этот файлв мой «скрипт» и используйте случайный модуль импорта.

Вот что у меня есть:

import random

name = ( "jay" , "luis" , "bob" , "sofi", "susan" ) 

x = random.sample(name,input( "please enter the number of volunteers needed" ))
print x 

вместо name = ( xxxxxxxxxxxxx ), я хочу иметь файл name = .txt.

Каждый раз, когда я хочу изменить имена, я могу просто поменять их в файле .txt.

Я пытаюсь составить программу для моего школьного клуба добровольцев, поэтому выбрано количество добровольцевнаугад и не смещен.Таким образом, у каждого есть несколько шансов.:]

Ответы [ 5 ]

3 голосов
/ 13 сентября 2011
file = open('myFile.txt', 'r')
names = file.read().split(',')
file.close()

Используйте это вместо вашей строки name = ..., и вам будет хорошо.

Подробнее о чтении и записи файлов на Python можно прочитать здесь .

Обратите внимание, что я предполагал, что в файле будет список, разделенный запятыми.Вы также можете поместить каждое имя в отдельную строку и вместо этого сделать names = file.readlines().

2 голосов
/ 13 сентября 2011

добро пожаловать в python: -]

как насчет этого?

import random
fid = open('names.txt', 'r')
names = fid.readlines()

number_needed = raw_input('please enter the number of volunteers needed: ')

print random.sample(names, int(number_needed))
1 голос
/ 13 сентября 2011

Вы можете просто заполнить текстовый файл именами, разделенными строкой:

with open('names.txt') as f:
    names = f.read().splitlines()
0 голосов
/ 13 сентября 2011

Где:

$ cat rand_nms.txt
jay
luis
bob
sofi

Тогда:

import random

contents=[]

with open("rand_nms.txt") as rnd:
    for line in rnd:
        line=line.strip()
        contents.append(line)

print contents
print "random name:", contents[random.randint(0,len(contents)-1)]

Результат:

['jay', 'luis', 'bob', 'sofi', 'susan']
random name: luis
0 голосов
/ 13 сентября 2011

Предполагая список имен в names.txt, по одному на строку (и что у вас там нет ста миллионов имен):

import random
number_of_volunteers = 4
print random.sample([n[:-1] for n in open("./names.txt").readlines()], number_of_volunteers)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...