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

问题描述 投票:0回答:1

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

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

如您所见,它仅处理文件中的某些行(由换行符分隔)。有没有一种方法可以在循环结束时删除该行,以便在程序关闭时可以从中断处继续执行?

python text-processing
1个回答
1
投票

为了让我正确地回答这个问题,您希望在处理并存储到datafile后将其从donefile中删除?

没有必要这样做,并且将其写入作为读取源的文件也存在很大风险。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.