linecache-随机访问文本行(9)Python文件和目录访问模块(必读进阶Python教程)(参考资料)
该linecache
模块允许从Python源文件获取任何行,同时尝试使用缓存在内部进行优化,这是从单个文件中读取许多行的常见情况。traceback
模块使用它来检索源行以包含在格式化的回溯中。
该tokenize.open()
函数用于打开文件。该函数用于tokenize.detect_encoding()
获取文件的编码; 在没有编码令牌的情况下,文件编码默认为UTF-8。
该linecache
模块定义了以下功能:
linecache.
getline
(filename,lineno,module_globals = None )- 从名为filename的文件中获取line lineno。此函数永远不会引发异常 – 它将返回错误(终止换行符将包含在找到的行中)。
''
如果找不到名为filename的文件
sys.path
,则在首次检查a后,该函数将在模块搜索路径中查找该文件 如果模块是从zipfile或其他非文件系统导入源导入的__loader__
,则 module_globals中的PEP 302。
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'