如何获取文件中的确切位置并从该位置打印行?

时间:2016-09-15 09:26:14

标签: python python-2.7 file file-handling file-pointer

我正在尝试不断更新日志文件,我正在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

现在我正在尝试连续打印日志行。如果没有日志行,它将记录最后一个位置值和I 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()方法寻找行中间位置。

有人可以帮忙解决这个问题吗?

0 个答案:

没有答案