新聞中心
說(shuō)明

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比陳倉(cāng)網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式陳倉(cāng)網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋陳倉(cāng)地區(qū)。費(fèi)用合理售后完善,10余年實(shí)體公司更值得信賴。
1、tail-f默認(rèn)先讀取最后10行數(shù)據(jù),然后從文件末尾讀取實(shí)時(shí)數(shù)據(jù)。
如果是小文件,可以先讀取所有文件內(nèi)容,輸出最后10行。
2、讀取全文后獲取最后10行的性能并不高,后滾10行的邊界條件也很復(fù)雜。先獲取全文,再得到最后10行的實(shí)現(xiàn)。
實(shí)例
import time import sys from typing import Callable, NoReturn class Tail(object): def __init__( self, file_name: str, output: Callable[[str], NoReturn] = sys.stdout.write, interval: int = 1 ): self.file_name: str = file_name self.output: Callable[[str], NoReturn] = output self.interval: int = interval def __call__(self): with open(self.file_name) as f: self.read_last_line(f) while True: line: str = f.readline() if line: self.output(line) # 使用print都會(huì)每次都打印新的一行 else: time.sleep(self.interval) def read_last_line(self, f): last_lines = f.readlines()[-10:] for line in last_lines: self.output(line) if __name__ == '__main__': filename: str = sys.argv[0] Tail(filename)()
以上就是python中tail -f的實(shí)現(xiàn),希望對(duì)大家有所幫助。更多Python高級(jí)指路:python創(chuàng)新互聯(lián)教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
網(wǎng)站題目:創(chuàng)新互聯(lián)Python教程:Python中tail-f如何實(shí)現(xiàn)
當(dāng)前鏈接:http://fisionsoft.com.cn/article/cccgggc.html


咨詢
建站咨詢
