2013-09-27 51 views
-2

我有一个大文件,每次写入一行到文件中,首先检查文件大小,如果大小达到极限,删除行首。并插入在结束。谁可以帮助我?Python删除大文件的起始行

其他人?帮帮我。

+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是您希望拥有的最大文件数量。

+0

是的,它是一个日志文件。文件不能超过1G.only一个文件。 – Anakin

+0

谢谢,其他人? – Anakin