[work] python读取txt文件最后一行

忘是亡心i 2022-04-10 13:58 997阅读 0赞

txt文件小

  1. #coding:utf-8
  2. '''
  3. fname为所读xx.txt文件
  4. 输出为:文件第一行和最后一行
  5. '''
  6. fname = 'test.txt'
  7. with open(fname, 'r') as f: #打开文件
  8. lines = f.readlines() #读取所有行
  9. first_line = lines[0] #取第一行
  10. last_line = lines[-1] #取最后一行
  11. print '文件' + fname + '第一行为:' + first_line
  12. print '文件' + fname + '最后一行为:'+ last_line

当文件很大时,采用这种方法不可行,资源浪费太大,采用下面方案。

txt文件大

  1. #coding:utf-8
  2. '''
  3. f_name为所读xx.txt文件
  4. 输出为:文件最后一行
  5. '''
  6. fname = 'test.txt'
  7. with open(fname, 'r') as f: #打开文件
  8. first_line = f.readline() #读第一行
  9. off = -50 #设置偏移量
  10. while True:
  11. f.seek(off, 2) #seek(off, 2)表示文件指针:从文件末尾(2)开始向前50个字符(-50)
  12. lines = f.readlines() #读取文件指针范围内所有行
  13. if len(lines)>=2: #判断是否最后至少有两行,这样保证了最后一行是完整的
  14. last_line = lines[-1] #取最后一行
  15. break
  16. #如果off为50时得到的readlines只有一行内容,那么不能保证最后一行是完整的
  17. #所以off翻倍重新运行,直到readlines不止一行
  18. off *= 2
  19. print '文件' + fname + '第一行为:' + first_line
  20. print '文件' + fname + '最后一行为:'+ last_line

发表评论

表情:
评论列表 (有 0 条评论,997人围观)

还没有评论,来说两句吧...

相关阅读

    相关 17 读取文件最后

    现要打开C:盘根目录下名为 tag.txt 的文本文件,打印出该文件的最后一行文本(假设该文件中每一行文本的长度不超过100),之后关闭该文件。请写出实现该逻辑的代码段。注意: