python3从零学习-5.4.9、linecache — 随机读写文本行

78 篇文章 1 订阅
78 篇文章 0 订阅
源代码:  Lib/linecache.py

        linecache  模块允许从一个 Python 源文件中获取任意的行,并会尝试使用缓存进行内部优化,常应用于从单个文件读取多行的场合。 此模块被  traceback  模块用来提取源码行以便包含在格式化的回溯中。
tokenize.open()  函数被用于打开文件。 此函数使用  tokenize.detect_encoding()  来获取文件的编码格式;如果未指明编码格式,则默认编码为 UTF-8。
linecache 模块定义了下列函数:
  • linecache.getline(filename, lineno, module_globals=None)

            从名为  filename  的文件中获取  lineno  行,此函数绝不会引发异常 — 出现错误时它将返回  ''  (所有找到的行都将包含换行符作为结束)。
如果名为  filename  的文件未找到,该函数将在模块搜索路径  sys.path  中查找它,在此之前会先在  module_globals  中检查  PEP 302  __loader__ ,以涵盖模块是从 zip 文件或其他非文件系统导入源导入的情况。
  • 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'
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值