Python 不使用';不要长过一定的尺寸
每次触发应用程序中的某些事件时,我都需要将一些输出写入日志文件。现在,我正在以想象得到的最简单的方式做这件事:Python 不使用';不要长过一定的尺寸,python,Python,每次触发应用程序中的某些事件时,我都需要将一些输出写入日志文件。现在,我正在以想象得到的最简单的方式做这件事: with open('file.log', 'a+') as file: file.write('some info') 这是可行的,但问题是我不希望文件无限期地增长。我想要一个硬尺寸的截止,比如说25MB。但我不想在文件达到该大小时简单地清除它 相反,我希望它能够发挥我认为其他日志文件的作用,从文件顶部清除最旧的数据,并将新数据附加到文件的末尾。用Python实现这一点的好
with open('file.log', 'a+') as file:
file.write('some info')
这是可行的,但问题是我不希望文件无限期地增长。我想要一个硬尺寸的截止,比如说25MB。但我不想在文件达到该大小时简单地清除它
相反,我希望它能够发挥我认为其他日志文件的作用,从文件顶部清除最旧的数据,并将新数据附加到文件的末尾。用Python实现这一点的好方法是什么?请注意,我不能使用Python的日志库,因为这是一个芹菜应用程序,(a)我已经为与此无关的目的设置了日志,(b)芹菜和日志库根本不能很好地配合使用
import os
statinfo = os.stat('somefile.txt')
这将返回somefile.txt的大小(以字节为单位)。
然后,您可以执行以下操作:
if statinfo.st_size > 25000000:
您可以按照自己的意愿实现它。您可以读取最多要替换的行数,删除这些行,然后将提醒保存在临时文件中,然后写入所需的数据,并附加临时文件。这不是很有效,但会起作用