我有一个文本文件,一行有六个单词,我需要从该行中随机生成一个单词。文本文件名是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")
答案 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())