从大文本文件中随机选择数据

时间:2015-04-22 10:15:51

标签: python

我在64位Windows7中使用8GB RAM。

我有一个30GB的文本文件,其中包含一列数字数据。

我必须随机选择5%的线条。 我开始如下:

fi = "data.txt"
lines = fi.read().splitlines()

Memory Error...

你有什么想法,伙计们?

1 个答案:

答案 0 :(得分:4)

如果“约5%”对您来说足够好,您可以逐行阅读文件,并为每行提供5%的机会列入您的列表:

import random
result = []
with open("data.txt") as f:
    for line in f:
        if random.random() < 0.05:
            result.append(line)