使用 Python 跟踪日志文件
人们经常想要跟踪日志文件或以其他方式被动地观察它以查看添加到其中的新内容。这可以通过几种方式在 Python 中实现。
非阻塞
对于这种方法,可以使用子进程并选择模块。
import time import subprocess import select f = subprocess.Popen(['tail', '-F', filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) p = select.poll() p.register(f.stdout) while True: if p.poll(1): print(f.stdout.readline()) time.sleep(1)
此代码打开一个在指定文件上运行 tail -F 的子进程,并轮询其输出以获取新数据,并在可用时将其打印出来。这种方法不会阻塞主程序。
阻塞
仅使用子进程模块可以使用更简单的阻塞方法。
import subprocess f = subprocess.Popen(['tail', '-F', filename], stdout=subprocess.PIPE, stderr=subprocess.PIPE) while True: line = f.stdout.readline() print(line)
此代码还会在添加新行时打印它们,但它将阻塞,直到尾部程序关闭。
以上是如何在 Python 中跟踪日志文件:阻塞与非阻塞?的详细内容。更多信息请关注PHP中文网其他相关文章!