真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

python讀文件最后幾行的方法

這篇文章給大家分享的是有關python讀文件最后幾行的方法的內容。小編覺得挺實用的,因此分享給大家做個參考。一起跟隨小編過來看看吧。

十余年的大埔網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網站建設的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整大埔建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“大埔網站設計”,“大埔網站推廣”以來,每個客戶項目都認真落實執(zhí)行。

處理文件時,一個常見的需求就是讀取文件的最后一行。那么這個需求用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. 設置偏移量時注意不要超過文件總的字節(jié)數,否則會報OSError,

3. 注意邊界條件的處理,比如文件只有一行的情況。

感謝各位的閱讀!關于python讀文件最后幾行的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


分享文章:python讀文件最后幾行的方法
本文鏈接:http://weahome.cn/article/jeehgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部