Python删除大文件的起始行

时间:2013-09-27 09:16:32

标签: python large-files

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

其他人?帮助我。

1 个答案:

答案 0 :(得分: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是你想要的最大文件数。