簡體   English   中英

將所有先前生成的單詞存儲到單獨文件中的隨機單詞生成器?

[英]Random Word Generator that stores all previously generated words into a separate file?

我的 Python 級別:初級

我的問題:如果我想制作一個隨機單詞生成器,它可以向我顯示之前生成的所有生成的單詞(例如,在單獨的 CSV 文件中),我該怎么做?

這看起來應該相當簡單,但我不知道要查找什么來解決這個問題。 我的想法是以某種方式使用循環,不斷重新分配值,或者每次單擊“運行”時將新生成的單詞復制/粘貼到另一個文檔中。


一個例子:

隨機生成的詞

運行 #1 Output: ['dog', 'cat', 'bag']

運行 #2 Output: ['tree', 'hug', 'food']

. . .

運行 #10 Output: ['hamburger', 'tree', 'desk']

這個更新后的 CSV 文件將包括所有從之前程序運行時隨機生成的單詞,看起來像這樣:

['dog', 'cat', 'bag', 'tree', 'hug', 'food', ..., 'word_x', 'word_x', 'word_x', ..., 'hamburger', 'tree', 'desk']

(我再次添加“樹”以表明該項目可以重復)


這是我到目前為止所擁有的:

注意:這是我實際使用的數據的簡化版本

word_list = ['dog', 'cat', 'tree', 'hungry', 'food', 'hamburger', 'desk', 'bag', 'rain', 'car']
    
rand_word_rep = random.choices(word_list, k=3)
print(rand_word_rep)

Output

['dog', 'desk', 'car']

我的問題(再次):如果我想制作一個隨機單詞生成器,它可以向我顯示之前生成的所有生成的單詞(例如,在單獨的 CSV 文件中),我該怎么做?


希望我在這篇文章中說得很清楚。 如果沒有,請讓我知道您的困惑,我會澄清。 提前致謝!

您可以像這樣將行寫入文件:

with open('data.txt', 'at') as f:
    f.write('this\n')

'a'表示“追加”, 't'表示“文本”。 請注意,您負責使用換行符將行寫入文件。

現在您可以將此文件讀入列表:

with open('data.txt', 'rt') as f:
    data = f.readlines()

請注意,對於“讀取文本”,文件模式已更改為'rt' ”。

換行符也在那里; 例如,您可以使用str.strip()剝離它們。

您可以正常寫入文件。

def write(data, filename):
    with open(filename, 'a') as f:
        f.write('\n'.join(data) + '\n')

def read(filename):
    with open(filename) as f:
        return f.read().splitlines()

def clear(filename):
    with open(filename, 'w'):
        pass

word_list = ['dog', 'cat', 'tree', 'hungry', 'food', 'hamburger', 'desk', 'bag', 'rain', 'car']
    
rand_word_rep = random.choices(word_list, k=3)

write(rand_word_rep, 'chosen_words.txt')

['dog', 'cat', 'bag']之后,文件將如下所示:

dog
cat
bag

['tree', 'hug', 'food']之后,文件將如下所示:

dog
cat
bag
tree
hug
food

等等

暫無
暫無

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

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