0

我正在运行一个从文件中获取名称的循环。

我想要做的是当名字被取走时,它会从文件中删除它。我怎样才能做到这一点?

4

2 回答 2

0

试试fileinput

它类似于:

import fileinput
for line in fileinput.input(someFileName, inplace=True):
    doSomething()

任何迭代的行都被消耗,因此从文件中删除。
如果您需要保留它print,它将被重写到同一位置的文件中。
即,如果您不打印该行,它将消失:)

于 2013-01-27T11:17:17.713 回答
0

本机文件不能那样工作。每次循环时,您都必须重写剩余文件的整个列表。性能会很差(除非文件列表总是很短)。如果您在尝试更新文件时由于无法进行更新而导致进程崩溃,则故障模式非常糟糕。您可以做的最好的事情是:写入临时文件,删除原始文件,然后重命名(或移动)临时文件。

相反,您应该考虑使用SQLite。您可以从File表中删除记录,或者有一个状态字段来跟踪哪些文件已被处理。

于 2013-01-27T11:21:56.620 回答