1

我想在一个名为“names”的 .txt 文件中有一个名称列表,例如“john, jack, daniels,whisky, 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 文件中进行更改。

我正在尝试为我的学校志愿者俱乐部制定一个计划,因此选择的志愿者人数是随机的,没有偏见。这样每个人都有一个公平的机会。:]

4

5 回答 5

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

用它代替你的name = ...线,你应该很高兴。

您可以在此处阅读有关在 Python 中读取和写入文件的更多信息。

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

于 2011-09-13T02:12:11.993 回答
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))
于 2011-09-13T02:20:23.870 回答
1

您可以简单地用由行分隔的名称填充一个文本文件:

with open('names.txt') as f:
    names = f.read().splitlines()
于 2011-09-13T02:10:57.403 回答
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
于 2011-09-13T02:58:04.803 回答
0

假设 中的名称列表names.txt,每行一个(并且您在那里没有一亿个名称):

import random
number_of_volunteers = 4
print random.sample([n[:-1] for n in open("./names.txt").readlines()], number_of_volunteers)
于 2011-09-13T02:18:49.983 回答