gpt4 book ai didi

python - 从 python 中的文件中删除行的有效方法(并保持相同的文件名)?

转载 作者:太空狗 更新时间:2023-10-30 02:06:06 25 4
gpt4 key购买 nike

我的程序正在为用户保留日志。如果日志变得大于设定的数量,我想删除前 20% 的行。

从类似的问题中,我看到了读取旧文件的建议,并将我想要保留的所有行写到一个新文件中。但是,我的文件可能太大而无法持续读入,并且使用该方法不会让我保持相同的文件名。

我可以在不读取旧文件的情况下从文件中删除行吗?

最佳答案

日志文件实现此目的的一般方法是“轮换”——当日志文件变旧或达到一定大小时,您将其重命名并开始编写新文件。如果您使用 logging模块,甚至还有一个预配置的 - RotatingFileHandler它会自动执行此操作。

至于你的问题:只能从后面截断,不能从头截断。一个近似的解决方案是 seek() 到文件的 20%,找到第一个 '\n' 并将其复制出来 - 但它会很慢并且容易出现竞争条件。使用日志记录和 RotatingFileHandler。

关于python - 从 python 中的文件中删除行的有效方法(并保持相同的文件名)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5996616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com