Python - 打开TXT,随机化,另存为新文件
我最近在用Python玩随机化的东西,但不知道为什么卡在这里了。也许是因为太晚了...
总之,我想找一个简单的方法来:
- 打开一个TXT文件
- 随机打乱里面的行
- 保存为一个新的TXT文件
我觉得自己有点傻... 希望能得到一些帮助!谢谢!
1 个回答
6
使用 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
的随机性是完美的,那么一行的当前位置和打乱前的位置是完全没有关系的。使用其他答案中的简单算法,情况就不是这样了。这两种打乱方法所需的操作次数是一样的。