我有一個包含2000個單詞的文本文件,每行一個單詞。我試圖創建一個代碼,每10秒從同一行的文本文件中打印出兩個隨機單詞。我的文本文件的開頭部分如下所示:如何從文本文件打印隨機單詞
slip
melt
true
therapeutic
scarce
visitor
wild
tickle
.
.
.
我寫的代碼是:
from time import sleep
import random
my_file = open("words.txt", "r")
i = 1
while i > 0:
number_1 = random.randint(0, 2000)
number_2 = random.randint(0, 2000)
word_1 = my_file.readline(number_1)
word_2 = my_file.readline(number_2)
print(word_1.rstrip() + " " + word_2.rstrip())
i += 1
sleep(10)
當我執行的代碼,而不是打印兩個隨機單詞開始打印所有從文本的頂部按順序排列的單詞。我不確定爲什麼會發生這種情況,因爲number_1和number_2在循環中,所以每次打印兩個單詞number_1和number_2時應該更改爲兩個其他隨機數。我不認爲在循環之外替換number_1和number_2是可行的,因爲它們將被固定爲兩個值,代碼將繼續打印相同的兩個單詞。有誰知道我能做些什麼來修復代碼?
謝謝!有用。 – iza
@Dan Waxman ......小調整......'.readline()'不帶參數,但大多數人不會使用它。 '.readline()'的文檔沒有明確說明,但是它說:'examplefile.readline(size = -1,/)'。將非負大小放入方法將返回當前行的該字節數。 –
@ E.Ducateme謝謝!在發佈之前,我已經簡要地檢查了IO文檔,並且沒有看到列出的任何參數,這使我對他的代碼如何工作感到困惑。我糾正了答案。 –