我正在运行一个从文件中获取名称的循环。
我想要做的是当名字被取走时,它会从文件中删除它。我怎样才能做到这一点?
试试fileinput。
它类似于:
import fileinput
for line in fileinput.input(someFileName, inplace=True):
doSomething()
任何迭代的行都被消耗,因此从文件中删除。
如果您需要保留它print
,它将被重写到同一位置的文件中。
即,如果您不打印该行,它将消失:)
本机文件不能那样工作。每次循环时,您都必须重写剩余文件的整个列表。性能会很差(除非文件列表总是很短)。如果您在尝试更新文件时由于无法进行更新而导致进程崩溃,则故障模式非常糟糕。您可以做的最好的事情是:写入临时文件,删除原始文件,然后重命名(或移动)临时文件。
相反,您应该考虑使用SQLite。您可以从File
表中删除记录,或者有一个状态字段来跟踪哪些文件已被处理。