现在的位置: 首页 > 操作系统 > 正文

Pythonlinecache模块

2020年02月13日 操作系统 ⁄ 共 1107字 ⁄ 字号 评论关闭
文章目录

Table of Contents

linecache

今天分享一个Python的小模块: linecache, 可以用它方便地获取某一文件某一行的内容。而且它也被 traceback 模块用来获取相关源码信息来展示。用法很简单:

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

linecache.getline 第一参数是文件名,第二个参数是行编号。如果文件名不能直接找到的话,会从 sys.path 里找。

如果请求的行数超过文件行数,函数不会报错,而是返回''空字符串。如果文件不存在,函数也不会报错,也返回''空字符串。

linecache 会尝试用缓存一些信息来优化对文件的读取。它还提供了两个方法来处理缓存相关。

linecache.clearcache() # 清除不再需要的linecache.getcache()获取的内容linecache.checkcache([filename]) # 检查文件在硬盘上是否有更新,如果有更新缓存。 # 如果没有提供文件名参数,则检查linecache缓存里所有的条目

其它

当文件很大而只要读取其中一行时,如果采用linecache成为程序的瓶颈,也可以采用如下方法来获得速度上一些提升:

def get_line(thefilepath, desired_line_number): if desired_line_number < 1: return '' for current_line_number, line in enumerate(open(thefilepath, 'rU')): if current_line_number == desired_line_number -1: return line return ''

ps: 打开文件的方式'rU'是以一种windows,mac,unix三个平台同一的方式打开,都读取成 \n, 参照这里。

参考资料

https://docs.python.org/2/library/linecache.html《Python Cookbook》Chapter2.4

本文永久更新链接地址:http://www.xuebuyuan.com/Linux/2016-12/137770.htm

以上就上有关Pythonlinecache模块的相关介绍,要了解更多Python linecache,Python模块,Python linecache模块,编程,Linux编程,Linux Shell,Android,Android教程,JAVA,C语言,Python,HTML5内容请登录学步园。

抱歉!评论已关闭.