2015-04-22 68 views
0

我正在使用64位Windows7中的8GB RAM。從大文本文件中隨機選擇數據

我有一個30GB的文本文件,有一列數字數據。

我必須隨機隨機選擇5%的行數。 我開始如下:

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

Memory Error... 

你有什麼想法嗎?

回答

4

如果「約5%」是對你不夠好,你可以逐行讀取文件中的行,並給每行5%的機率被列入清單的方法:

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