linecache
— 随机访问文本行
¶
源代码: Lib/linecache.py
linecache
module allows one to get any line from a Python source 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.
tokenize.open()
function is used to open files. This function uses
tokenize.detect_encoding()
to get the encoding of the file; in the absence of an encoding token, the file encoding defaults to UTF-8.
linecache
模块定义了下列函数:
linecache.
getline
(
filename
,
lineno
,
module_globals=None
)
¶
Get line
lineno
from file named
filename
. This function will never raise an exception — it will return
''
on errors (the terminating newline character will be included for lines that are found).
If a file named
filename
is not found, the function will look for it in the module search path,
sys.path
, after first checking for a
PEP 302
__loader__
in
module_globals
, in case the module was imported from a zipfile or other non-filesystem import source.
linecache.
clearcache
(
)
¶
Clear the cache. Use this function if you no longer need lines from files previously read using
getline()
.
linecache.
checkcache
(
filename=None
)
¶
Check the cache for validity. Use this function if files in the cache may have changed on disk, and you require the updated version. If filename is omitted, it will check all the entries in the cache.
linecache.
lazycache
(
filename
,
module_globals
)
¶
Capture enough detail about a non-file-based module to permit getting its lines later via
getline()
even if
module_globals
is
None
in the later call. This avoids doing I/O until a line is actually needed, without having to carry the module globals around indefinitely.
3.5 版新增。
范例:
>>> import linecache
>>> linecache.getline(linecache.__file__, 8)
'import sys\n'