1
我一直在亂python一段時間隨機現在,但由於某種原因,我卡在這裏。也許它晚上太晚了......Python - 打開TXT,隨機化,另存爲新文件
無論如何,我正在尋找一種簡單的Python方法,
- 打開TXT文件
- 隨機化線
- 另存爲新的TXT文件
我感覺有點啞這裏... 任何幫助表示讚賞!謝謝!
我一直在亂python一段時間隨機現在,但由於某種原因,我卡在這裏。也許它晚上太晚了......Python - 打開TXT,隨機化,另存爲新文件
無論如何,我正在尋找一種簡單的Python方法,
我感覺有點啞這裏... 任何幫助表示讚賞!謝謝!
使用random.shuffle
以隨機順序:
import random
with open('filename', 'rb') as infile:
lines = infile.readlines()
random.shuffle(lines)
with open('newfilename', 'wb') as outfile:
outfile.writelines(lines)
編輯:洗牌的方法,對方的回答建議是錯誤的。請參閱評論及其中的鏈接。這裏是一個洗牌的一個更正確的示例:
end = len(lines) - 1
for i in range(end + 1):
choice = random.randint(i, end)
lines[i], lines[choice] = lines[choice], lines[i]
這個洗牌後,從randint
假設完美的隨機性,一條線的位置是完全不相關與洗牌前的位置。在其他答案中使用樸素算法,情況並非如此。兩次洗牌都採取相同數量的操作。
爲什麼作爲二元? –
@TylerCrompton沒有特別的原因,那是我的默認值。這可能沒有關係。 – agf
嗯。無論如何,我需要閱讀。說到個人默認值,我更喜歡打印到標準輸出,以便我可以在shell中看到結果,或者我可以選擇將輸出保存爲文件。也許是因爲這是我被教導的方式。 :/ –