国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python常见问题 > python怎么读文件最后几行

python怎么读文件最后几行

文件读取

头像

silencement

2019-09-20 10:50:594603浏览 · 0收藏 · 0评论

处理文件时,一个常见的需求就是读取文件的最后一行。那么这个需求用python怎么实现呢?一个朴素的想法如下:

with open('a.log', 'r') as fp:
    lines = fp.readlines()
    last_line = lines[-1]

即使不考虑异常处理的问题,这个代码也不完美,因为如果文件很大,lines = fp.readlines()会造成很大的时间和空间开销。

解决的思路是用将文件指针定位到文件尾,然后从文件尾试探出一行的长度,从而读取最后一行。代码如下:

def __get_last_line(self, filename):
    """
    get last line of a file
    :param filename: file name
    :return: last line or None for empty file
    """
    try:
        filesize = os.path.getsize(filename)
        if filesize == 0:
            return None
        else:
            with open(filename, 'rb') as fp: # to use seek from end, must use mode 'rb'
                offset = -8                 # initialize offset
                while -offset < filesize:   # offset cannot exceed file size
                    fp.seek(offset, 2) #read#offset chars from eof(represent by number'2')
                    lines = fp.readlines()  # read from fp to eof
                    if len(lines) >= 2:     # if contains at least 2 lines
                        return lines[-1]    # then last line is totally included
                    else:
                        offset *= 2         # enlarge offset
                fp.seek(0)
                lines = fp.readlines()
                return lines[-1]
    except FileNotFoundError:
        print(filename + ' not found!')
        return None

其中有几个注意点:

1. fp.seek(offset[, where])中where=0,1,2分别表示从文件头,当前指针位置,文件尾偏移,缺省值为0,但是如果要指定where=2,文件打开的方式必须是二进制打开,即使用'rb'模式,

2. 设置偏移量时注意不要超过文件总的字节数,否则会报OSError,

3. 注意边界条件的处理,比如文件只有一行的情况。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

我被5个男人躁一夜不收我怎么办| 男生亲你阴部代表什么心理| 美女和帅哥一起努力生产豆浆 | 鬼眼| 公交车上把腿张开让人摸| 我在开会他在下添好爽在线视频 | 韩国咬住奶头的乳三级| 蜜桃成时熟2| 添女人荫蒂全部过程AV视频| 狗锁住女人狗的视频大全图片| 小妈妈2免费观看完整电视剧| 同学的母亲中字ID| 欧美大片LOGO| 国产乱子伦精品视频潮| 麻花传剧原创MV免费播放小米车| 欧美叔叔别撩我免费观看电视剧| 舌头伸进去添的我爽高潮| 自慰视频| 在线视频| 哔哩哔哩拜年纪| (丰满的继牾2)理伦片在线观看| 天美传奇星空MV高清免费| 小孩把钢筋喂给班主任视频| 妈妈说今晚爸爸不回家| 妻子的姐姐免费观看大全电视剧| 美国A片巜禁忌9| 《晚上准备好纸巾》| 双男床上剧烈运动会怎么消除| 一个添B一个添3个人添| X7X7X7任意噪1060| 接吻| 双人床上剧烈运动会怎么消除| 苍老师最经典10部电影| 靠近女局长:权力征途| 教室停电插班花原文小说| X姓女RAPPER的首次亮相| 欧美大片PPT免费大全| 《医务室上垒》动漫全集在线观看| WWW.1688.COM麻豆.| 东北娘们国语版免费播放| 漂亮的保姆韩国电影免费看