什么时候是打开要写入文件的最佳方法?

时间:2018-06-25 05:18:40

标签: python file file-writing

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

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

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大,则第一种方法可能会出现问题。

编辑:

要从一些回答中弄清楚,每种方法的优缺点是什么?

2 个答案:

答案 0 :(得分:2)

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

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

如果不必担心,那就是2 + 3 vs 3 + 2。

答案 1 :(得分:0)

定义更好...

我可以想到几个方面:

  1. 文件占用的时间-如果其他用户需要此文件,则最好让文件尽可能少地打开以供您使用->在此之前进行处理
  2. 干净的编码-TDate.text = dataGridView1.SelectedRows[0].Cells[TDate].Value.ToString(); Taka.text = dataGridView1.SelectedRows[0].Cells[Taka].Value.ToString(); 语句比with->内部流程更整洁
  

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

open + close的大小无关紧要,因为您不阅读它,只打开它进行书写即可。