csv数据可以懒惰吗?

oct*_*bus 5 python csv clojure lazy-evaluation

使用 Python 的 csv 模块,是否可以将整个大型 csv 文件读入一个惰性列表列表?

我问这个,因为在 Clojure 中有 csv 解析模块可以解析一个大文件并返回一个惰性序列(一个序列序列)。我只是想知道这在 Python 中是否可行。

Tim*_*ker 7

除非我误解了你,否则这是默认行为,这是阅读 csv 文件的本质:

import csv

def lazy(csvfile):
    with open(csvfile) as f:
        r = csv.reader(f)
        for row in r:
            yield row
Run Code Online (Sandbox Code Playgroud)

一次给你一排。


Gar*_*tty 6

默认情况下,csv模块reader是惰性的。

它将一次从文件中读取一行,将其解析为一个列表,然后返回该列表。