新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:Python中tail-f如何實現(xiàn)
說明

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比陳倉網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式陳倉網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋陳倉地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
1、tail-f默認先讀取最后10行數(shù)據(jù),然后從文件末尾讀取實時數(shù)據(jù)。
如果是小文件,可以先讀取所有文件內(nèi)容,輸出最后10行。
2、讀取全文后獲取最后10行的性能并不高,后滾10行的邊界條件也很復(fù)雜。先獲取全文,再得到最后10行的實現(xiàn)。
實例
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都會每次都打印新的一行 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的實現(xiàn),希望對大家有所幫助。更多Python高級指路: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如何實現(xiàn)
當前鏈接:http://m.5511xx.com/article/cccgggc.html


咨詢
建站咨詢
