# 9 `linecache` -- テキストラインにランダムアクセスする

`linecache` モジュールは、キャッシュ (一つのファイルから何行も読んでおくのが一般的です)を使って、 内部で最適化を図りつつ、任意のファイルの任意の行を取得するのを可能にします。

このモジュールは `traceback` モジュールで、インクルードしたソースを フォーマットされたトレースバックで復元するのに使われています。

`linecache` モジュールでは次の関数が定義されています:

`getline`( | filename, lineno[, module_globals])

  filename という名前のファイルから lineno 行目を取得します。 この関数は決して例外を投げません -- エラーの際には `''` を返します。 (行末の改行文字は、見つかった行に含まれます。)

  filename という名前のファイルが見つからなかった場合、 モジュールの 、つまり、 `sys.path` で そのファイルを探します。

  zipfileやその他のファイルシステムでないimport元に対応するため まず modules_globals の PEP 302 `__loader__` をチェックし、そのあと `sys.path` を探索します。

  バージョン 2.5 で 新たに追加 された仕様: パラメータmodule_globals の追加

`clearcache`( | )

  キャッシュをクリアします。 それまでに `getline()` を使って読み込んだファイルの行が必要でなくなったら、 この関数を使ってください。

`checkcache`( | [filename])

  キャッシュが有効かチェックします。 キャッシュしたファイルにディスク上で変更があったかもしれなくて、更新 が必要なときにこの関数を使ってください。もしfilenameがなければ、 全てのキャッシュエントリをチェックします。

サンプル:

    >>> import linecache
    >>> linecache.getline('/etc/passwd', 4)
    'sys:x:3:3:sys:/dev:/bin/sh\n'