gpt4 book ai didi

python - 如何从一个大文件中随机删除多行?

转载 作者:太空狗 更新时间:2023-10-29 17:38:52 26 4
gpt4 key购买 nike

我有一个 13 GB 的大文本文件,其中包含 158,609,739 行,我想随机选择 155,000,000 行。

我试图打乱文件然后剪切 155000000 的第一行,但似乎我的 ram 内存 (16GB) 不够大,无法执行此操作。我尝试过的管道是:

shuf file | head -n 155000000
sort -R file | head -n 155000000

我认为现在不是选择行,而是更有效地从文件中删除 3,609,739 行随机行以获得 155000000 行的最终文件。

最佳答案

当您将文件的每一行复制到输出时,评估应将其删除的可能性。第一行应该有 3,609,739/158,609,739 的机会被删除。如果您生成一个介于 0 和 1 之间的随机数,并且该数字小于该比率,请不要将其复制到输出中。现在第二行的赔率是 3,609,738/158,609,738;如果不删除该行,则第三行的赔率为 3,609,738/158,609,737。重复直到完成。

由于赔率随处理的每一行而变化,因此该算法保证了准确的行数。删除 3,609,739 后,赔率变为零;如果在任何时候您需要删除文件中剩余的每一行,则可能性为 1。

关于python - 如何从一个大文件中随机删除多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8087313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com