zoukankan      html  css  js  c++  java
  • python读取txt文件最后一行(文件大+文件小)

    txt文件小

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

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

    txt文件大

    #coding:utf-8
    '''
    f_name为所读xx.txt文件
    输出为:文件最后一行
    '''
    
    fname = 'test.txt'
    with open(fname, 'r') as f:  #打开文件
        first_line = f.readline()  #读第一行
        off = -50      #设置偏移量
        while True:
            f.seek(off, 2) #seek(off, 2)表示文件指针:从文件末尾(2)开始向前50个字符(-50)
            lines = f.readlines() #读取文件指针范围内所有行
            if len(lines)>=2: #判断是否最后至少有两行,这样保证了最后一行是完整的
                last_line = lines[-1] #取最后一行
                break
            #如果off为50时得到的readlines只有一行内容,那么不能保证最后一行是完整的
            #所以off翻倍重新运行,直到readlines不止一行
            off *= 2
    
        print '文件' + fname + '第一行为:' + first_line
        print '文件' + fname + '最后一行为:'+ last_line
    版权声明:本文为博主原创文章,欢迎转载。转载请注明出处 http://blog.csdn.net/binchasing
  • 相关阅读:
    OVS local network 连通性分析
    再部署一个 instance 和 Local Network
    ARM Linux系统调用的原理
    Linux内存管理中的slab分配器
    浅析基于ARM的Linux下的系统调用的实现
    分享一个查看十六进制的位的小程序
    mokoid 源代码下载
    shell中eval的使用问题
    批量去掉文件中的^M
    基于TINY4412的Andorid开发-------简单的LED灯控制
  • 原文地址:https://www.cnblogs.com/zhangchenliang/p/8136958.html
Copyright © 2011-2022 走看看