linecache --- �机读写文本行¶

�代�: Lib/linecache.py


linecache 模��许从一个 Python �文件中获�任�的行,并会�试使用缓存进行内部优化,常应用于从�个文件读�多行的场�。 此模�被 traceback 模�用�����行以便包�在格�化的回溯中。

tokenize.open() 函数被用于打开文件。 此函数使用 tokenize.detect_encoding() �获�文件的编�格�;如果未指明编�格�,则默认编�为 UTF-8。

linecache 模�定义了下列函数:

linecache.getline(filename, lineno, module_globals=None)¶

从�为 filename 的文件中获� lineno 行,此函数��会引�异常 --- 出现错误时它将返回 '' (所有找到的行都将包��行符作为结�)。

如果找�到�为 filename 的文件,此函数会先在 module_globals 中检查 PEP 302 __loader__。 如果存在这样的加载器并且它定义了 get_source 方法,则由该方法�确定�行 (如果 get_source() 返回 None,则该函数返回 '')。 最�,如果 filename 是一个相对路径文件�,则它会在模��索路径 sys.path 中按�目的相对�置进行查找。

linecache.clearcache()¶

清空缓存。 如果你��需�之�使用 getline() 从文件读�的行��使用此函数。

linecache.checkcache(filename=None)¶

检查缓存有效性。 如果缓存中的文件在�盘上�生了改�,而你需�更新�的版本��使用此函数。 如果�略了 filename,它会检查缓存中的所有�目。

linecache.lazycache(filename, module_globals)¶

�获有关�个�基于文件的模�的足够细节信�,以�许���通过 getline() �获�其中的行,�使当��调用时 module_globals 为 None。 这�以��在实际需�读�行之�执行 I/O,也�必始终��模�全局��。

在 3.5 版本加入.

示例:

>>> import linecache
>>> linecache.getline(linecache.__file__, 8)
'import sys\n'