linecache模块 enumerate函数

从文件中得到指定行.

标准库提供的linecache模块提供了解决方案:

import linecache
theline = linecache.getline(thefilepath, desired_line_number)

在处理这一类的问题时,linecache总是可以做为一种方案

,尤其是要重复执行的时候,因为linecache提供的机制能防止重复进行一些无用的操作.当你使用完毕的时候 ,调用clearcache方法来清空使用的缓存.也可以使用checkcache确保对文件的修改正确的保存在磁盘上.
linecache读入并缓存给出文件的所有内容,所以假如文件非常的巨大,linecache可能要做更多的工作.如果这成为你程序的瓶颈,用循环处理可能会获得更好的效果:

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

需要注意的地方是enumerate从0开始计数,所以我们要在计算的时候减一.

enumerate每次回返回一个tuple, (index, value)
例子很简单:
s = ['abc', 'This is a test', 'Hello,
Python']
for i, line in enumerate(s):
print i+1, line

我的QQ邮箱今天开通了webQQ

我的QQ邮箱今天开通了webQQ,也就是通过QQ邮箱进行在线聊天,感觉不错。 ^_^

QQ邮箱是我最喜欢的邮箱,用的输入法也是我最喜欢的QQ拼音输入法。 ^_^