使用Python的csv模块,是否可以将整个大型csv文件读入惰性列表列表?
我问这个,因为在Clojure中有csv解析模块,它将解析一个大文件并返回一个惰性序列(一系列序列)。我只是想知道在Python中是否可行。
答案 0 :(得分:4)
csv
模块的reader
默认为懒惰。
它将从文件中一次读取一行,将其解析为列表,然后返回该列表。
答案 1 :(得分:4)
除非我误解你,否则这是默认行为,这是阅读csv文件的本质:
import csv
def lazy(csvfile):
with open(csvfile) as f:
r = csv.reader(f)
for row in r:
yield row
一次给你一行。
答案 2 :(得分:3)
Python的阅读器或DictReader是生成器。只有在调用对象的next()方法时才会生成一行。
答案 3 :(得分:1)
csv模块确实懒得加载数据,一次一行。