我有一个在循环开始之前打开的文件,我几乎在循环的每次迭代中都在写入该文件。然后在循环结束后关闭文件。例如,类似于:
testfile = open('datagathered','w')
for i in range(n):
...
testfile.write(line)
testfile.close()
我遇到的问题是,万一程序崩溃或者我想让它崩溃,已经写入testfile
的内容将被删除,而文本文件{
如果是的话,我有什么其他的方法来写,并确保在崩溃的情况下,已经写的行不会丢失,以一种有效的方式?
链接的帖子确实提出了很好的建议,可以说可以回答这个问题,但它们没有涵盖所涉及的风险和效率差异。更确切地说:使用buffersize有什么风险吗?e、 g.testfile = open('datagathered','w',0)
如果有多个文件要写入,那么使用with open...
仍然是一个可行的替代方案?
小提示:这是在一个非常长的运行环境中提出的,在这种情况下,文件将被写入2-3天。因此,有一个快速和安全的写作方式在这里绝对是有价值的。
使用上下文:
从这个问题我明白了你所说的异常可能发生在运行时和SIGINT。在
你可以用“除了最后一次尝试”来达到你的目标。它使您能够捕获异常和SIGINT信号。由于finally块将被执行,要么捕捉到异常,要么一切正常,所以关闭文件是最好的选择。我想下面的示例代码可以解决您的问题。在
相关问题 更多 >
编程相关推荐