什么时候打开文件进行写入是最好的方式?
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
很大,那么第一种方法可能会有一些问题。
编辑:
为了从一些回复中澄清,每种方法的优缺点是什么?
更好地定义...
我能想到几个方面:
- 文件花费的时间 - 如果其他用户需要此文件,最好尽可能少地打开它供您使用 --> 处理之前
- 干净的编码 -
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 的作用域,只有作用域构造是 def
和 class
块,因此 summary
在 [=13 之后不会被清理=] 块已在第二个示例中结束。
我只能想到一个区别:以写入模式打开文件会清除它,因此如果 process_data
在 with
块内花费很长时间 - 它会使文件处于空状态更长时间。
如果这不是问题,那就是 2+3 对 3+2。
假设我需要处理一些数据,然后将结果写入某个文件。
先打开文件,然后处理数据,再写入文件会不会更好?
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
很大,那么第一种方法可能会有一些问题。
编辑:
为了从一些回复中澄清,每种方法的优缺点是什么?
更好地定义...
我能想到几个方面:
- 文件花费的时间 - 如果其他用户需要此文件,最好尽可能少地打开它供您使用 --> 处理之前
- 干净的编码 -
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 的作用域,只有作用域构造是 def
和 class
块,因此 summary
在 [=13 之后不会被清理=] 块已在第二个示例中结束。
我只能想到一个区别:以写入模式打开文件会清除它,因此如果 process_data
在 with
块内花费很长时间 - 它会使文件处于空状态更长时间。
如果这不是问题,那就是 2+3 对 3+2。