我有一个有超过一百万行的CSV文件,我试图解析这个文件并将行插入数据库。Python CSV解析填满内存
with open(file, "rb") as csvfile:
re = csv.DictReader(csvfile)
for row in re:
//insert row['column_name'] into DB
对于低于2 MB的csv文件,这种方法效果很好,但除此之外,最终还是吃掉了我的记忆。这可能是因为我将Dictreader的内容存储在名为“re”的列表中,并且无法遍历这么庞大的列表。我肯定需要访问带有列名的csv文件,这就是我选择dictreader的原因,因为它可以轻松地提供列级访问我的csv文件。任何人都可以告诉我为什么会发生这种情况,如何避免这种情况?
http://stackoverflow.com/questions/24868856/reading-rows-of-big-csv-file-in-python – DhruvPathak
虽然没有回答你的实际问题,但如果你需要加载数据,它可以使用DB自己的工具(例如,Postgres中的COPY表(col1,col2)FROM WITH CSV文件或MySQL中的LOAD DATA INFILE)可以更简单快捷地使用数据库。 –