readlines产生一个空列表Python

时间:2018-08-02 06:40:31

标签: python

我正在尝试创建一个子手游戏。当我尝试用单词列表读取文件时,它返回一个空数组。

代码:

#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")

1 个答案:

答案 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