如何从文件中逐行删除所有行?

时间:2013-01-27 11:09:56

标签: file python-2.7

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

我想要做的是在获取名称时,然后将其从文件中删除。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

试试fileinput

它类似于:

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

任何迭代的行被消耗掉,因此从文件中删除 如果您需要将其保留print,则会将其重写为同一位置的文件 即如果你不打印回来它就会消失:)

答案 1 :(得分:0)

原生文件无法正常工作。每次循环时,您都必须重写剩余文件的完整列表。性能会很差(除非文件列表总是很短)。如果您在尝试更新文件时进程崩溃,则失败模式非常糟糕,因为您无法进行更新。您可以做的最好的事情是:写入临时文件,删除原始文件,然后重命名(或移动)临时文件。

相反,您应该考虑使用SQLite。您可以从File表中删除记录,也可以使用状态字段跟踪已处理的文件。