我正在尝试不断更新日志文件,并且正在访问该日志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()
方法寻找行中间的位置。
任何人都可以帮忙解决这个问题吗?