在python中处理大型数据集时避免memoryError

时间:2017-11-07 04:19:35

标签: python memory out-of-memory

我想对使用MergeSort对大量数据进行排序所需的时间进行基准测试,并且我有以下脚本打开多个文本文件,读取它们并转动每一行(这是1之间的随机整数)和999)到列表中的整数元素。

data = []
for file in ["10.txt", "100.txt", "1000.txt", "10000.txt", "100000.txt", "1000000.txt", "10000000.txt", "100000000.txt"]:
    tempList = []
    with open(file) as myfile:
        for line in myfile:
            tempList.append(int(line.rstrip()))
    data.append(tempList)

然而,问题是我在尝试向列表中添加100,000,000个元素时出现内存错误。抛开FileIO,我尝试了一些单独的方法:

data = []
for limit in [10, 100, 1000, 10000, 100000, 1000000, 10000000, 10000000]:
    tempList = []
    for i in range(limit):
        tempList.append(random.randint(1,999))
    data.append(tempList)

然而,出现同样的问题;它根本无法处理1亿件物品。这是我的机器的问题(我的机器相当高端)。有没有更有效的方法来做到这一点?

0 个答案:

没有答案