【问题标题】:Python help ---> random name selection from text filePython帮助--->从文本文件中随机选择名称
【发布时间】:2011-09-13 02:07:27
【问题描述】:

我想要一个名为“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 = .txt 文件,而不是 name = ( xxxxxxxxxxxxx )

每次我想更改名称时,我都可以在 .txt 文件中进行更改。

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

【问题讨论】:

标签: python random module generator names


【解决方案1】:
file = open('myFile.txt', 'r')
names = file.read().split(',')
file.close()

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

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

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

【讨论】:

    【解决方案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))
    

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          地点:

          $ 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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-01-10
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多