gpt4 book ai didi

python - 限制 Python 输出文件大小

转载 作者:太空狗 更新时间:2023-10-29 11:28:00 25 4
gpt4 key购买 nike

我有一个在 Debian 上运行的 Python 程序,它使用 File 对象输出数据。我想限制我的文件的大小,但我不想停止写入文件——我只想删除最旧的行(在文件的顶部)。当数据包从客户端到达时,我的数据是随机写入的(想想网络日志记录)。

我知道它可以工作,但如果我的文件超过限制,结合使用 File.tell() 然后执行以下系统命令,是否符合我的最大利益?

sed -i '1 d' filename 

一旦达到大小限制,它就会每次都执行 sed。有没有更好的办法?

最佳答案

没有日志系统使用这种策略是有原因的。您不能在不重写整个文件的情况下从文件中删除第一行,因此在大文件上速度非常慢。此外,您不能在重写文件时将新数据写入文件。

正常的策略是在当前文件变得太大时开始写入新文件。然后,您可以删除早于阈值的文件。这就是别人提到的“日志轮换”。

如果您真的想创建一个队列,在其中您在添加新数据的同时删除一行数据,我建议您改用数据库。 MongoDB 和其他数据库管理器支持数组,但如果需要,您可以对 SQL 数据库执行类似的操作。

关于python - 限制 Python 输出文件大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6363763/

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