我收到错误:
OverflowError: length too large
我试图在这个拥有30GB内存的虚拟机上读取24GB的csv:
Linux indexer 3.19.0-59-generic #66~14.04.1-Ubuntu SMP Fri May 13 17:27:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
我可能的解决方案是什么?我不熟悉python中的大小限制:
csv_file = csv.reader(media.read().splitlines(), delimiter=mapping['delimiter'], quoting=csv.QUOTE_NONE)
答案 0 :(得分:3)
删除.read().splitlines()
,因为这会将整个文件一次性读入内存并且过多。文件对象media
已经是行的迭代器,因此csv.reader
将正确处理它。然后迭代阅读器,逐行做你需要的任何事情。