バージョン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 を送出します。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。