我正在尝试创建一个子手游戏。当我尝试用单词列表读取文件时,它返回一个空数组。
代码:
#Making a game of hangman
import random
def rand_word(file_name):
# Retrieves a random word from a file
f = open(file_name, "r")
for num_lines, words in enumerate(f):
pass
num_lines += 1
print(num_lines)
rand_line = random.randint(1,num_lines)
print (rand_line)
file = f.readlines()
print(file)
f.close()
rand_word("words.txt")
答案 0 :(得分:1)
在for
循环中遍历文件时,您已经用尽了文件,因此,在使用readlines
时,您就位于文件末尾,没有任何可读取的内容。
您应该先阅读列表中的单词,然后从列表中随机选择一个单词:
import random
def rand_word(filename):
with open(filename) as f:
words = f.readlines()
word = random.choice(words).strip()
return word