文章来自《Python cookbook》. 翻译仅仅是为了个人学习,其它商业版权纠纷与此无关!
-- 61.182.251.99 [DateTime(2004-09-20T22:17:38Z)] TableOfContents
描述
读取文件特定行
问题 Problem
读取文件的指定一行
解决 Solution
The standard linecache module makes this a snap:
使用标准模块linecache处理,很简单:
import linecache #thefiepath 文件路径 #desired_line_number 整数,文件的特定行 theline = linecache.getline(thefilepath, desired_line_number)
讨论 Discussion
使用标准模块linecache处理这个任务,一般来说是最佳方法。由于lincecache缓存了文件的信息,当需要多次提取文件的某些特定行时,可以避免无用的重复操作。
如果不再需要读取文件特定行而且脚本需要继续运行,应该使用linecache的clearcache方法释放缓存占用的内存。
使用checkcache方法可以检查磁盘文件是否已经变化,如果变化可以更新缓存信息。
linecache读取并缓存作为参数传入的文件的全部信息。如果处理一个很大的文件,而且只需要读取某一个特定行,使用linecache可能会进行不是严格必须的操作。如果这个例程恰好是程序性能瓶颈,可以编写函数,封装循环代码,以获得性能提升。 Python 2.2中函数代码如下:
def getline(thefilepath, desired_line_number):
if desired_line_number < 1: return ''
current_line_number = 0
for line in open(thefilepath):
current_line_number += 1
if current_line_number == desired_line_number: return line ###返回特定行数据
return ''
