在循环处理后删除文本文件中的行

Remove lines in a text file after processing them in a loop

我有一个简单的程序可以处理文本文件中的一些行(向它们添加一些文本)。但随后它将它们保存到另一个文件中。我想知道您是否可以在循环中处理该行后删除该行。这是我的程序如何工作的示例:

datafile  = open("data.txt", "a+")
donefile = open("done.txt", "a+")
for i in datafile:
    #My program goes in here
    donefile.write(processeddata)
    #end of loop
datafile.close()
donefile.close()

如您所见,它只是处理文件中的一些行(由换行符分隔)。有没有办法删除循环末尾的行,以便程序关闭时可以从中断处继续?

为了让我答对问题 - 您想在处理完 datafile 并将其存储在 donefile 中后将其删除?

没有必要这样做,而且写入作为读取源的文件也很冒险。

相反,为什么不在退出循环后删除 donefile? (即在您关闭文件之后)

文件迭代器是一个惰性迭代器。因此,当您执行 for i in datafile 时,它会一次将一行加载到内存中,因此您只处理那一行...因此内存限制不应该是您关心的问题

最后,要访问文件,请考虑使用 with statement。它处理文件句柄异常并使您的程序更健壮