<p>我有一个应用程序,它从文件中读取行,并在读取时在每行上运行它的魔力。一旦该行被读取并正确处理,我想从文件中删除该行。已保留已删除行的备份。我想做一些像</p>
<pre><code>file = open('myfile.txt', 'rw+')
for line in file:
processLine(line)
file.truncate(line)
</code></pre>
<p>这似乎是一个简单的问题,但我想做的是正确的,而不是一大堆复杂的seek()和tell()调用。</p>
<p>也许我真正想做的就是从文件中删除一行。</p>
<p>在这个问题上花了很长时间之后,我决定每个人都可能是对的,这不是一个好的做事方法。这似乎是一个很好的解决方案。我想要的是一个类似于FIFO的东西,它可以让我从文件中弹出行。</p>
<p>最好在文件中保留一个索引,这样就可以从上次停止的地方开始,而不会破坏文件的一部分。像这样的方法会奏效:</p>
<pre><code>try :
for index, line in enumerate(file) :
processLine(line)
except :
# Failed, start from this line number next time.
print(index)
raise
</code></pre>