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