Вытягивание случайного слова/строки из строки в текстовом файле в 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 ответа

Ваша строка 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)


Это может быть так просто:

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

Слова считываются из первой строки файла и преобразуются в массив, тогда из этого массива делается произвольный выбор.

Если слова вместо этого находятся на отдельных строках (или разбросаны по строкам), используйте read() вместо readline().


Вы можете прочитать строку из файла с помощью функции .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()


кратчайшее решение

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

licensed under cc by-sa 3.0 with attribution.