我有一个大的(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')
任何人都知道如何解决这个问题?