使用SH模块(PIP安装sh):from sh import tail# runs foreverfor line in tail("-f", "/var/log/some_log_file.log", _iter=True):
print(line)
[最新情况]
因为.尾巴和._iter=True是一个生成器,您可以:import sh
tail = sh.tail("-f", "/var/log/some_log_file.log", _iter=True)
然后,您可以使用以下方法“getNewData”:new_data = tail.next()
请注意,如果尾缓冲区是空的,它将阻塞直到有更多的数据(从您的问题,它不清楚您想做什么,在这种情况下)。
[最新情况]如果将-f替换为-f,这是可行的,但是在Python中,它将是锁定的。如果有可能的话,我会更感兴趣的是,如果可能的话,我可以调用一个函数来获取我想要的新数据。-伊莱
容器生成器将尾调用放置在一个时间真循环中,并捕获最终的I/O异常,其效果与-F几乎相同。def tail_F(some_file):
while True:
try:
for line in sh.tail("-f", some_file, _iter=True):
yield line except sh.ErrorReturnCode_1:
yield None
如果无法访问该文件,生成器将不返回任何。但是,如果文