需求:获取最新的日志信息
掌握基础:Python文件操作
要点分析:
1. import time 是为后续循环高速运转减速
2. with open() as f 是打开文件,子代码块结束运行后 即自动关闭文件
3.open()内以rb模式打开文件,是为了与f.seek()联合使用,当然rt模式也是可以但是一般不会 与 f.seek()使用,虽然这里可以。
4.f.seek(0, 2)是为了将文件指针移动到文件末尾处,模式2可以解决这一问题,0表示文件指针不移动了。
5.每次循环读取文件内容,如果内容,需要将内容解码后输出(由于日志文件是以utf-8编码格式存入硬盘,所以从硬盘读取也是要说明以什么样的编码格式读取),解码用decode(),参数是解码的格式(utf-8————》unicode)
""" @File: 动态更新日志.py @Author: 炒茄子 @Time: 2022/6/18 10:30 """ import time with open(r'日志.txt', mode='rb') as f: f.seek(0, 2) # 模式2:文件指针首先子文件内容结尾处,移动字节数为0 # 循环读取文件监测是否有新内容出现,有则打印,无则继续循环 while True: content = f.readline() if len(content) != 0: # 说明有新日志出现 print(content.decode('utf-8')) else: # 说明没有新日志出现,为了循环不高速运转,需要休眠一会呃 time.sleep(0.5) # 休眠0.5秒
结果展示:
这里会有多的换行源于print本身有换行的功能,加上ned=''即可