バージョン2.1 以降で新規追加された 仕様です。
for line in file
を代わりに使ってください。
このモジュールでは、あるファイル内の各行に対して効率的に反復を行える
ような新たなオブジェクト型を定義します。xreadline オブジェクトは
for 文や関数 filter() で必要とされるような、
0
から始まる単純かつ順序正しいインデクス付けを実装した配列型
です。
つまり、以下のコード
import xreadlines, sys for line in xreadlines.xreadlines(sys.stdin): pass
は、
while 1: lines = sys.stdin.readlines(8*1024) if not lines: break for line in lines: pass
とだいたい同じ速度とメモリ消費になります。ただし前者は for 文のままなのでより明快です。
fileobj) |
xreadlines オブジェクト s は以下の配列操作をサポートします:
操作 | 結果 |
---|---|
s[i] |
s の i 行目 |
i の値が 0
から始まる連続した数でない場合、 このコードは
例外RuntimeError を送出します。
ファイルの最後の行が読み出された後、このコードは例外 IndexError を送出します。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。