从python中的文本文件中的一行中拉出一个随机单词/字符串

时间:2015-09-25 01:12:10

标签: python

我有一个文本文件,一行有六个单词,我需要从该行中随机生成一个单词。文本文件名是WordsForGames.txt。我正在做一个刽子手游戏。这就是我所拥有的,远远如此。我有点迷路请帮忙

import random
import os
print(" Welcome to the HangMan game!!\n","You will have six guesses to get the answer correct, or you will loose!!!",)
words = open("../WordsForGames.txt")

4 个答案:

答案 0 :(得分:2)

可以简单如下:

import random
print(random.choice(open("WordsForGames.txt").readline().split()))

从文件的第一行读取单词并将其转换为数组,然后从该数组中随机选择。

如果这些字词是单独的行(或跨行传播),请使用read()代替readline()

答案 1 :(得分:1)

您可以使用.readline()函数从文件中读取一行,然后根据您用于行中单词的分隔符将字符串拆分为字符串列表。然后random.choice()从列表中随机选择一个单词。

另一个建议是使用with语句来处理文件,以便with语句可以自动为您关闭文件。

示例 -

import random
with open("../WordsForGames.txt") as word_file:
    words = word_file.readline().split() #This splits by whitespace, if you used some other delimiter specify the delimiter here as an argument.
random_word = random.choice(words)

如果单词在不同的行中,您可以使用.read()代替.readline()(上述逻辑的其余部分相同) -

with open("../WordsForGames.txt") as word_file:
        words = word_file.read().split()

答案 2 :(得分:0)

您的第words = open("../WordsForGames.txt")行不会读取该文件,只是在您添加其他标记时打开该文件进行读取或可能写入。

例如,您需要使用readlines()读取一行或多行,然后很可能将这些单词拆分为一个列表,然后随机选择其中一个单词。像这样:

import random 

# get the first line if this is the one with the words words
lines = open("../WordsForGames.txt").readlines() 
line = lines[0] 

words = line.split() 
myword = random.choice(words)

答案 3 :(得分:0)

最短的解决方案

import random
print(random.choice(open('file.txt').read().split()).strip())