python - 在不耗尽内存的情况下随机化 1.53 亿行文件

标签 python python-3.x

你好,我想随机化一个 1.53 亿行文本文件的行,但我目前使用的方式让我在执行此操作时内存不足:

with open(inputfile,'r') as source:
    data = [ (random.random(), line) for line in source ]
    data.sort()
with open(outputfile,'w') as target:
    for _, line in data:
        target.write( line )

最佳答案

使用 h5py ,你可以将你的数据文件移植成HDF5格式,然后随机化:

https://stackoverflow.com/a/44866734/3841261

You can use random.shuffle(dataset). This takes a little more than 11 minutes for a 30 GB dataset on my laptop with a Core i5 processor, 8 GB of RAM, and a 256 GB SSD

关于python - 在不耗尽内存的情况下随机化 1.53 亿行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52010848/

相关文章:

python - 如何将多个函数应用于单个 pandas 数据框列?

python - cx_Freeze - 从桌面快捷方式运行 .exe 时出错

python - 三元运算符与 if-else 语句的性能

python - 尝试从 dockerized Python 脚本连接时出现 FTP 错误 "500 Illegal PORT command"

Python-数据帧 : Multiply multiple columns by another column and save in new columns

Python3.3 : Square-root optimization

python - Python 中的迭代器 (iter()) 函数。

Python 与 perl 排序性能

python - 对统计处理的 R2 值使用 'groupby' - python

python - 我怎么知道我的变量是什么类型?