10.9. linecache —随机访问文本行

源代码: Lib/linecache.py


linecache模块允许一个人从任何文件中获取任何行,同时try使用缓存在内部进行优化,这是从单个文件读取多行的常见情况。 traceback模块使用它来检索源行以包含在格式化的 traceback 中。

linecache模块定义以下Function:

  • linecache. getline(* filename lineno * [,* module_globals *])
    • 从名为* filename 的文件获取 lineno *行。此函数绝不会引发异常-它将在错误时返回''(找到的行将包含终止的换行符)。

如果未找到名为* filename 的文件,则该Function将首先在 module_globals *中检查 PEP 302 __loader__后在模块搜索路径sys.path中查找,以防模块是从 zip 文件或其他非 zip 文件导入的。 -filesystem 导入源。

2.5 版中的新Function:添加了* module_globals *参数。

  • linecache. clearcache ( )

    • 清除缓存。如果您不再需要以前使用getline()读取的文件中的行,请使用此Function。
  • linecache. checkcache([文件名])

    • 检查缓存的有效性。如果缓存中的文件可能已在磁盘上更改,并且您需要更新的版本,请使用此Function。如果Ellipsis* filename *,它将检查缓存中的所有条目。

Example:

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