0

我正在尝试不断更新日志文件,并且正在访问该日志log_parser.py文件,如下所示:

****log_parser.py****
import time
last_pos=0
while True:
    f=open(r".\log_file.log","r")
    f.seek(last_pos)
    for i in f.readlines():
        print i
        print "****************************"
    else:
        last_pos=f.tell()
        time.sleep(1)
        continue

现在我正在尝试连续打印日志行。如果没有日志行,它将记录最后一个位置值,并且我seek()每次迭代都会定位,但这会给我错误的输出。

****log_file.log****
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
.
.
.
.
.
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

我将这些行动态附加到该日志文件中。

 ****Excpected output*************
 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 ***********************
 bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 *************************
 cccccccccccccccccccccccccccccc
 **************************
 and upto zzzzzz

但现在我得到了

  ***I am Getting************
  aaaaaaaaaaaaaaaaaaaaaaaaaaaa
  **********************
  bbbbbbbbbbbbbbbbbbbbbbbbbbbbb
  *********************
  cccccccccccccccccccccccccccccccccc
  ************************
  dddddddddddddddd
  *************************
  dddddddddddd
  *******************
  eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
  ***********************************
  upto zzzzz

但是在中间f.tell()方法返回指针并且f.seek()方法寻找行中间的位置。

任何人都可以帮忙解决这个问题吗?

4

0 回答 0