在Python中有效地从日志文件中删除多行

时间:2016-07-28 17:34:50

标签: python datetime logging

我有一个记录日志的日志文件:

  • 格式:日期时间价值
  • 例如:2016-07-28 16:54:32,504 -47.7669027319

我想仅保留过去24小时的日志。记录以2个样本/秒继续24 * 7,即172800个样本/ 24小时。 从https://stackoverflow.com/a/28057753/5954600我发现了Python代码,它可以根据我的要求进行修改:

    import datetime

    # for testing I'm using "seconds=60", which will be modified to "hours=24"
    before_24h =  str(datetime.datetime.now() - datetime.timedelta(seconds=60))

    file = open("meter.log","r+")
    logs = file.readlines()
    file.seek(0)
    for each_log in logs:
            if each_log > before_24h:
                    file.write(each_log)
    file.truncate()
    file.close()

此代码在24小时之前删除所有日志,但将172800行写入文件将需要一些时间。所以我正在寻找有效的方法,如果有的话。

提前致谢。

0 个答案:

没有答案