从文件中读取指定的行


你想根据给出的行号,从文本文件中读取一行数据。

Python标准库linecache模块非常适合这个任务:

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

讨论

对这个任务而言,标准的linecache模块是Python能够提供的最佳解决工具。当你想要对文件中的某些行进行多次读取时,linecache特别有用,因为linecache会缓存一些信息以避免重复一些工作。当你不需要从缓存中获得行数据时,可以调用模块的clearcache函数来释放被用作缓存的内存。当磁盘上的文件发生了变化时,还可以调用checkcache,以确保缓存中存储的是最新的信息。

linecache读取并缓存你指定名字的文件中的所有文本,所以,如果文件非常大,而你只需要其中一行,为此使用linecache则显得不是那么必要。如果这部分可能是你的程序的瓶颈,可以使用显式的循环,并将其封装在一个函数中,这样可以获得速度上的一些提升,像这样:

 
  1. def getline(thefilepath, desired_line_number):  
  2.       if desired_line_number < 1: return ''  
  3.       for current_line_number, line in 
    enumerate(open(thefilepath, 'rU')):  
  4.             if current_line_number == 
    desired_line_number-1: return line  
  5.       return '' 

唯一需要注意的细节是enumerate从0开始计数,因此,既然我们假设desired_line_ number参数从1开始计算,需要在用==比较的时候减去1。


已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页