#!/usr/bin/env python
# -*- coding:utf8 -*-
# Description: 文件只保留指定行数
class ControlFileSize(object):
def __init__(self, file_path, save_rows):
# 文件路径
self.file_path = file_path
# 保留行数
self.save_rows = save_rows
def read_file(self):
with open(self.file_path) as f:
data = f.readlines()
return data
def replace_file(self, source, destination):
with open(self.file_path, 'r+') as f:
t = f.read()
t = t.replace(source, destination)
f.seek(0, 0)
f.write(t)
f.truncate()
def run(self):
data = self.read_file()
if len(data) > self.save_rows:
remove_rows = data[:len(data) - self.save_rows]
for rows in remove_rows:
print(rows)
self.replace_file(rows, '')
if __name__ == '__main__':
save = ControlFileSize('messages-20220320', 500000)
save.run()
测试结果:50M可以存大概60万条日志