Python中tail -f如何实现

  • 更新时间:2021-06-18 08:42:14
  • 编辑:贺水格
为找教程的网友们整理了相关的编程文章,网友宿秋英根据主题投稿了本篇教程内容,涉及到最后、读取、全文、数据、文件相关内容,已被819网友关注,内容中涉及的知识点可以在下方直接下载获取。

参考资料

正文内容

今天在网上看到《Python中tail -f如何实现》,觉得有用就收藏了,把代码做了调试发布出来,为了大家阅读方便。

Python中tail -f如何实现

说明

1、tail-f默认先读取最后10行数据,然后从文件末尾读取实时数据。如果是小文件,可以先读取所有文件内容,输出最后10行。

2、读取全文后获取最后10行的性能并不高,后滚10行的边界条件也很复杂。先获取全文,再得到最后10行的实现。

实例

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的实现,希望对大家有所帮助。更多Python高级指路:python高级

相关教程

  • 详解Python的json文件读取及中文乱码显示问题解决方法

    这篇文章主要介绍了Python实现的json文件读取及中文乱码显示问题解决方法,涉及Python针对json文件的读取载入、编码转换等相关操作技巧,需要的朋友可以参考下

    发布时间:2019-06-06

  • python使用xlrd模块读取excel的方法实例

    Python读取Excel表格,相比xlwt来说,xlrd提供的接口比较多,下面这篇文章主要给大家介绍了关于python使用xlrd模块读取excel的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下

    发布时间:2019-07-23

用户留言