-3

我有一个大文件,每次在文件中写入一行,首先检查文件大小,如果大小达到限制,则删除该行的开头。并在结尾插入。谁能帮助我?

还有其他人吗?帮帮我。

4

1 回答 1

2

很抱歉把它带给你,但这是不恰当的架构决定。

这个问题隐藏在文件系统的深处,而不是 Python。为了删除文件中的第一行,您实际上必须读取整个文件,然后将其全部(第一行除外)写回存储驱动器,效率非常低。

执行此操作的 python 代码如下所示:

with open('file_path', 'r') as f:
    lines = f.read().splitlines()

with open('file_path', 'w') as f:
    for item in lines[1:]:
        thefile.write("%s\n" % item)

如果您告诉我们您到底想达到什么目标,我们可能会想出一个更好的解决方案。

例如,如果是日志文件,软件中经常使用的解决方案是文件轮换。即,一旦 log_file1 达到其容量,它就会开始写入 log_file2,然后是 log_file3,然后是 log_fileN,然后再写入 log_file1。其中 N 是您想要拥有的最大文件数量。

于 2013-09-27T09:29:57.987 回答