Python 3内存错误处理超过5100万行csv

时间:2017-12-26 13:29:09

标签: python python-3.x csv

我有一个大的(60gb)csv文件。这是Windows 10上的python 3.6.4,内存为16GB。现在我只是试图迭代文件的行,如下所示:

with open('large_csv.csv') as myfile:
    count = 0
    for line in myfile:
        if count % 1000000 == 0:
            print(count)
        count += 1

问题是,在5100万行中,python冻结了。在整个过程中,我的内存使用量没有变化。几秒钟之后,然后消耗我系统的所有内存,如果我不强制取消它就会崩溃。我不明白为什么记忆应该是一个问题。

可能重要的一点是,当试图在EmEditor中打开文件时,我会弹出一个说法"文件中包含的空字符(00H)"。也许文件有坏数据?

我也尝试使用pandas来读取块中的csv,但最终内存不足并且程序冻结了:

import pandas as pd
chunksize = 10 ** 6
for chunk in pd.read_csv('large_csv.csv', chunksize=chunksize):
    print('chunk')

任何人都知道如何解决这个问题?

0 个答案:

没有答案