【发布时间】:2015-06-04 00:41:31
【问题描述】:
我需要解析一个包含大约 100,000 条记录的文件。有没有办法在不将整个文件加载到内存的情况下做到这一点? csv 模块是否已经这样做了(即,不将整个文件加载到内存中)?如果这很重要,我计划在 IDLE 中执行此操作。
【问题讨论】:
标签: python python-2.7 csv ram
我需要解析一个包含大约 100,000 条记录的文件。有没有办法在不将整个文件加载到内存的情况下做到这一点? csv 模块是否已经这样做了(即,不将整个文件加载到内存中)?如果这很重要,我计划在 IDLE 中执行此操作。
【问题讨论】:
标签: python python-2.7 csv ram
我从来没有使用过 cvs 模块,但是你会想要考虑使用生成器,这将允许你一次处理一条记录,而无需一次读取整个文件。例如,对于一个文件,您可以执行类似...
def read_file(some_file):
for line in open(some_file):
yield line
all_lines = read_file("foo")
results = process(all_lines)
all_lines 将是一个生成器,每次被引用时都会返回一行,如下所示:
for line in all_lines:
...
我想你也可以使用 cvs 模块来做到这一点。
【讨论】: