假设我需要处理一些数据,然后将结果写入某个文件。
最好先打开文件,然后处理数据,然后再写入文件吗?
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
大,则第一种方法可能会出现问题。
编辑:
要从一些回答中弄清楚,每种方法的优缺点是什么?
答案 0 :(得分:2)
Python没有类似c的作用域,只有作用域构造是def
和class
块,因此在summary
块结束后with
不会被清除第二个例子。
我只能想到一个区别:以写模式打开文件会清除它,因此,如果process_data
在with
块中花费很长时间–它将使文件处于空状态的时间更长。
如果不必担心,那就是2 + 3 vs 3 + 2。
答案 1 :(得分:0)
定义更好...
我可以想到几个方面:
TDate.text = dataGridView1.SelectedRows[0].Cells[TDate].Value.ToString();
Taka.text = dataGridView1.SelectedRows[0].Cells[Taka].Value.ToString();
语句比with
->内部流程更整洁我的直觉告诉我,如果process_data()需要大量内存,并且文件很大,则第一种方法可能会出现问题。
open + close
的大小无关紧要,因为您不阅读它,只打开它进行书写即可。