请问如何在Python中跟踪日志文件?

如何在Python中跟踪日志文件?

我希望在Python中可以在没有阻塞或锁定的情况下使用tail-F或类似的输出。我找到了一些很老的代码这里,但我想现在肯定有更好的方法或图书馆来做同样的事情了。有人听说过吗?

理想情况下,我会有tail.getNewData()每次我想要更多数据的时候我都可以打电话给你。



守候你守候我
浏览 274回答 3
3回答

浮云间

非阻塞如果您在Linux上(因为windows不支持调用SELECT文件),您可以使用子进程模块和SELECT模块。import timeimport subprocessimport 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)这将轮询输出管道中的新数据,并在可用时将其打印出来。通常time.sleep(1)和print f.stdout.readline()将被有用的代码所取代。阻塞您可以使用子流程模块,而无需额外的SELECT模块调用。import subprocess f = subprocess.Popen(['tail','-F',filename],\         stdout=subprocess.PIPE,stderr=subprocess.PIPE)while True:     line = f.stdout.readline()     print line这也会在添加新行时打印出新行,但是它将阻塞直到尾程序关闭,可能使用f.kill().
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python