什么时候打开文件进行写入是最好的方式?

When is best way to open a file to write to?

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

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

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 很大,那么第一种方法可能会有一些问题。

编辑:

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

更好地定义...

我能想到几个方面:

  1. 文件花费的时间 - 如果其他用户需要此文件,最好尽可能少地打开它供您使用 --> 处理之前
  2. 干净的编码 - with 语句比 open + close --> 内部过程更整洁

My intuition tells me that if process_data() requires a lot of memory and if file is large, there may be some issues with the first approach.

file的大小应该无关紧要,因为你不读它,你只是为了写而打开它...

Python 没有类似 C 的作用域,只有作用域构造是 defclass 块,因此 summary 在 [=13 之后不会被清理=] 块已在第二个示例中结束。

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

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