Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 不使用';不要长过一定的尺寸_Python - Fatal编程技术网

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:
您可以按照自己的意愿实现它。您可以读取最多要替换的行数,删除这些行,然后将提醒保存在临时文件中,然后写入所需的数据,并附加临时文件。这不是很有效,但会起作用