5

Python の csv モジュールを使用して、大きな csv ファイル全体をリストの遅延リストに読み込むことは可能ですか?

Clojureには、大きなファイルを解析して遅延シーケンス(シーケンスのシーケンス)を返すcsv解析モジュールがあるため、これを求めています。Pythonでそれが可能かどうか疑問に思っています。

4

4 に答える 4

7

誤解していない限り、これはデフォルトの動作であり、csv ファイルを読み取る際の本質です。

import csv

def lazy(csvfile):
    with open(csvfile) as f:
        r = csv.reader(f)
        for row in r:
            yield row

一度に 1 行ずつ返されます。

于 2012-06-19T21:16:50.040 に答える
6

csvモジュールはreaderデフォルトで遅延しています。

ファイルから一度に 1 行ずつ読み取り、それをリストに解析して、そのリストを返します。

于 2012-06-19T21:16:34.443 に答える
2

Python のリーダーまたは DictReader はジェネレーターです。行は、オブジェクトの next() メソッドが呼び出されたときにのみ生成されます。

于 2012-06-19T21:18:27.453 に答える
1

csv モジュールは、一度に 1 行ずつデータを遅延ロードします。

于 2012-06-19T21:16:47.217 に答える