首页 > 解决方案 > 什么时候打开要写入的文件的最佳方式是什么?

问题描述

假设我需要处理一些数据,然后将结果写入某个文件。

先打开文件,然后处理数据,然后写入文件会更好吗?

with open('file', 'w') as f:
    summary = process_data()
    f.write(summary)

或者在写入文件之前打开文件会更好吗?

summary = process_data()
with open('file', 'w') as f:
    f.write(summary)

我的直觉告诉我,如果process_data()需要大量内存并且file很大,则第一种方法可能存在一些问题。

编辑:

从一些回复中澄清一下,每种方法的优缺点是什么?

标签: pythonfilefile-writing

解决方案


Python 没有类似 c 的作用域,只有作用域构造是defclass块,因此在第二个示例中块结束summary后不会被清理。with

我只能想到一个区别:以写入模式打开文件会清除它,因此如果块process_data内需要很长时间with- 它会使文件处于空状态的时间更长。

如果这不是问题,这是 2+3 对 3+2。


推荐阅读