簡體   English   中英

從python中的文本文件中的一行中拉出一個隨機單詞/字符串

[英]Pulling a random word/string from a line in a text file in 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")

可以很簡單:

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()

你的行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('file.txt').read().split()).strip())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM