清除日志文件Python的内容不起作用

时间:2018-08-09 03:15:23

标签: python python-3.x python-2.7

我偶然发现了一个问题。我有代码,每次运行代码时,都应在logfile上附加all_logfile的内容。

注意:

  • 日志文件是需要由新日志覆盖的文件。
  • logfile是文件的路径,因此:logfile = "path"
  • all_logfile是附加了logfile中的旧日志的文件。

这是附加代码:

with open(logfile) as f:
   with open(all_logfiles, "a") as f1:
      for line in f:
         f1.write(line)

上面的代码有效,但是,我必须清除logfile的内容。 filemode= 'w'对我不起作用。

logging.basicConfig(level=logging.DEBUG,
                format='%(asctime)s %(levelname)s %(message)s',
                filename=logfile,
                filemode='w')

以“ w”模式打开文件也不起作用。

with open('yourlog.log', 'w'):
pass

在写入新日志之前,有什么方法可以清除日志文件的内容吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果要在将数据写入all_logfile之后从日志文件中删除数据,则可以在将数据写入all_logfile之后截断该文件。下面的代码应该可以工作:

with open(logfile, "r+") as f:
    with open(all_logfiles, "a") as f1:
    for line in f:
        f1.write(line)
    f.seek(0)
    f.truncate()