Python帮助--->从文本文件中随机选择名称

时间:2011-09-13 02:07:28

标签: python random module generator names

我想在名为'names'的.txt文件中列出名称,例如“john,jack,daniels,whiskey,susan,alex”。

现在,我想将该文件导入我的“脚本”并使用导入随机模块。

这就是我所拥有的:

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 个答案:

答案 0 :(得分:3)

file = open('myFile.txt', 'r')
names = file.read().split(',')
file.close()

用它替代name = ...行,你应该好好去。

您可以阅读有关使用Python here读取和编写文件的更多信息。

请注意,我假设您在文件中有一个以逗号分隔的列表。您也可以将每个名称放在一个单独的行上,而是改为names = file.readlines()

答案 1 :(得分:2)

欢迎来到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))

答案 2 :(得分:1)

您只需填写一个文字文件,其名称由行分隔:

with open('names.txt') as f:
    names = f.read().splitlines()

答案 3 :(得分:0)

假设names.txt中有一个名单,每行一个(并且那里没有一亿个名字):

import random
number_of_volunteers = 4
print random.sample([n[:-1] for n in open("./names.txt").readlines()], number_of_volunteers)

答案 4 :(得分:0)

其中:

$ 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