IO操作-f.seek()的使用


需求:动态监测日志文件内容是否增加内容

如:存在日志文件access.log文件

思路:1.需要写入内容到文件中

   2.需求读取文件中内容,每次读取需要读取新添加的内容

    a.首先读取文件内容时需要指针停留在文件最末尾

    b.sh实时监控文件是否增加的有新内容,如果在写入的有新内容后,需要打印

实现方式:

# 每次写入文件内容(写入文件需要w和a模式,这时写入文件每次不能清空之前的内容,就需要使用a模式,进行追加)

# 新建一个py文件,进行写操作

with open(r'access.log',mode='at',encoding='utf-8') as f:

  f.write('XX充值游戏币XX钱,时间为:202001102230‘’)

# 在新建一个py文件,进行动态读取文件内容,是否添加新内容

import.time  # 引用时间函数

with open(r'access.log',mode='rb') as f:

  f.seek(0,2)  # 使用seek(),文件指针移动到文件末尾,向右移动0个字节(这里用的2模式,表示指针在文件末尾)

  while Ture:  #要实时监控是否有新增的内容,就需要进行循环

    res = f.readline()

    if len(res)  == 0:  # 如果读取的当前指针后为空

      time.sleep(2)  # 停止2s

    else:

      print(res.decode('utf-8'),end='')  # 如果当前之前后面不为空,则打印出来,以utf-8的格式打印出来,去掉换行

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM