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

时间:2015-10-22 18:18:48

标签: python text-processing

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

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()

因此,您可以看到它只处理文件中的某些行(由换行符分隔)。有没有办法在循环结束时删除该行,以便在程序关闭时它可以从中断的地方继续?

1 个答案:

答案 0 :(得分:1)

为了让我得到正确的答案 - 您希望在datafile处理并将其存储在donefile后从donefile删除该行?

没有必要这样做,写入一个作为读取源的文件也很危险。

相反,为什么不在退出循环后删除for i in datafile? (即关闭文件后)

文件迭代器是一个惰性迭代器。所以当你执行with statement时,它一次只能将一行加载到内存中,所以你只使用那一行...所以内存限制不应该是你关注的问题

最后,要访问文件,请考虑使用{{1}}。它负责文件句柄异常并使您的程序更加健壮