# 10.9. `linecache` — 随机读写文本行

源代码: Lib/linecache.py

The `linecache` module allows one to get any line from any file, while attempting to optimize internally, using a cache, the common case where many lines are read from a single file. This is used by the `traceback` module to retrieve source lines for inclusion in the formatted traceback.

`linecache` 模块定义了下列函数：

`linecache.``getline`(filename, lineno[, module_globals])

  从名为 filename 的文件中获取 lineno 行，此函数绝不会引发异常 — 出现错误时它将返回 `''` (所有找到的行都将包含换行符作为结束)。

  如果名为 filename 的文件未找到，该函数将在模块搜索路径 `sys.path` 中查找它，在此之前会先在 module_globals 中检查 PEP 302 `__loader__`，以涵盖模块是从 zip 文件或其他非文件系统导入源导入的情况。

  2.5 新版功能: The module_globals parameter was added.

`linecache.``clearcache`()

  清空缓存。 如果你不再需要之前使用 `getline()` 从文件读取的行即可使用此函数。

`linecache.``checkcache`([filename])

  检查缓存有效性。 如果缓存中的文件在磁盘上发生了改变，而你需要更新后的版本即可使用此函数。 如果省略了 filename，它会检查缓存中的所有条目。

示例:

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