Python - 打开TXT,随机化,另存为新文件

Dus*_*tin 1 python random lines

我一直在乱用python随机一段时间,但由于某种原因,我被困在这里.也许现在已经太晚了......

无论如何,我正在寻找一种快速简单的Python方法;

  • 打开TXT文件
  • 随机化线条
  • 保存为新的TXT文件

我在这里感觉有点愚蠢......任何帮助都表示赞赏!谢谢!

agf*_*agf 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)
Run Code Online (Sandbox Code Playgroud)

编辑:在另一个答案中建议的改组方法是错误的.请参阅评论及其中的链接.这是一个更正确的shuffle示例:

end = len(lines) - 1
for i in range(end + 1):
    choice = random.randint(i, end)
    lines[i], lines[choice] = lines[choice], lines[i]
Run Code Online (Sandbox Code Playgroud)

在这次洗牌之后,假设完美的随机性randint,线的位置与其在洗牌之前的位置完全不相关.在另一个答案中使用朴素算法,情况并非如此.两次洗牌都采用相同数量的操作.