2012-01-17 129 views
11

我开发了一个客户端 - 服务器应用程序,并且我登录了服务器,因此我使用了日志记录模块。我想在服务器中创建一个命令来清除文件。Python:清除日志文件

我已经使用os.remove()进行测试,但之后,日志不起作用。

你有什么想法吗?

谢谢。

+0

该日志是由守护进程写入的吗?您必须向守护进程发信号告知日志文件已被删除,以便关闭/重新打开日志文件句柄并开始使用新的日志文件。否则,它会继续写入旧的文件,该文件仍然存在,直到其上的所有文件句柄关闭。 – 2012-01-17 17:29:39

+1

将'mode =“w”'赋给['logging.FileHandler'](https://docs.python.org/2/library/logging.handlers.html#filehandler)。 – 2015-04-21 04:59:29

回答

27

截取文件而不是删除它可能会更好。最简单的解决方法是重新打开该文件从您的结算功能编写并关闭它:

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

Thaks,这很好用! – Guillaume 2012-01-17 17:54:26

3

试试这个

>>> with open("gre.txt", "w") as file: 
... file.truncate() 
... 
>>> 

UPDATE:

file.truncate()是没有必要的。您可以只pass

+1

所以你基本上复制了newtover的答案 – Purefan 2017-04-27 08:00:33