我的 Python 級別:初學者
我的問題:如果我想制作一個隨機詞生成器,它可以向我顯示之前生成的所有生成詞(例如,在單獨的 CSV 檔案中),我該怎么做?
這似乎應該相當簡單,但我不知道要查找什么來解決這個問題。我的想法是以某種方式使用回圈,繼續重新分配值,或者每次單擊“運行”時將新生成的單詞復制/粘貼到另一個檔案中。
一個例子:
隨機生成的單詞
運行 #1 輸出:['dog', 'cat', 'bag']
運行 #2 輸出: ['tree', 'hug', 'food']
. . .
運行 #10 輸出:['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)
輸出
['dog', 'desk', 'car']
我的問題(再次):如果我想制作一個隨機詞生成器,它可以向我顯示之前生成的所有生成詞(例如,在單獨的 CSV 檔案中),我該怎么做?
希望我在這篇文章中很清楚。如果沒有,請讓我知道您的困惑,我會澄清。提前致謝!
uj5u.com熱心網友回復:
您可以正常寫入檔案。
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
等等
uj5u.com熱心網友回復:
您可以像這樣將行寫入檔案:
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()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/490970.html
標籤:Python python-3.x 循环 CSV 随机的
上一篇:如何跳過已經在字串中回圈的字符
