我有一个简单的程序来处理文本文件中的某些行(向它们添加一些文本)。但随后它将它们保存到另一个文件中。现在我想知道你是否可以在循环(已处理)中完成后删除该行。 以下是我的程序如何工作的示例
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()
因此,您可以看到它只处理文件中的某些行(由换行符分隔)。有没有办法在循环结束时删除该行,以便在程序关闭时它可以从中断的地方继续?
答案 0 :(得分:1)
为了让我得到正确的答案 - 您希望在datafile
处理并将其存储在donefile
后从donefile
删除该行?
没有必要这样做,写入一个作为读取源的文件也很危险。
相反,为什么不在退出循环后删除for i in datafile
? (即关闭文件后)
文件迭代器是一个惰性迭代器。所以当你执行with statement
时,它一次只能将一行加载到内存中,所以你只使用那一行...所以内存限制不应该是你关注的问题
最后,要访问文件,请考虑使用{{1}}。它负责文件句柄异常并使您的程序更加健壮