Python 打开要写入的文件的最佳方式是什么时候?
假设我需要处理一些数据,然后将结果写入某个文件 是否最好先打开文件,然后处理数据,然后写入文件Python 打开要写入的文件的最佳方式是什么时候?,python,file,file-writing,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\u data()需要大量内存
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\u data()
需要大量内存,并且文件很大,那么第一种方法可能存在一些问题
编辑:
为了从一些回答中澄清,每种方法的优缺点是什么?定义更好的
我可以想到几个方面:
文件保存所需的时间-如果其他用户需要此文件,最好在-->处理之前尽可能少地将其打开供您使用
干净编码-with
语句比内部的打开+关闭过程更整洁
我的直觉告诉我,如果process_data()需要大量内存,并且文件很大,那么第一种方法可能会有一些问题
文件的大小应该无关紧要,因为您不阅读它,只打开它进行写入…定义更好的
我可以想到几个方面:
文件保存所需的时间-如果其他用户需要此文件,最好在-->处理之前尽可能少地将其打开供您使用
干净编码-with
语句比内部的打开+关闭过程更整洁
我的直觉告诉我,如果process_data()需要大量内存,并且文件很大,那么第一种方法可能会有一些问题
文件的大小应该无关紧要,因为您不阅读它,只打开它进行编写…Python没有类似c的作用域,只有作用域结构是def
和class
块,因此在第二个示例中with
块结束后,摘要
不会被清除
我能想到的只有一个区别:以写模式打开文件会将其清除,因此,如果处理\u数据
在带
块的中花费很长时间,它会使文件处于空状态更长时间
如果这不是一个问题,那么这是2+3对3+2。Python没有类似c的作用域,只有作用域构造是def
和class
块,因此在第二个示例中,summary
在with
块结束后不会被清除
我能想到的只有一个区别:以写模式打开文件会将其清除,因此,如果处理\u数据
在带
块的中花费很长时间,它会使文件处于空状态更长时间
如果这不是一个问题,那么这是2+3 vs 3+2。为什么不在with
之前创建摘要
,然后只使用with
块来进行实际写作?因为下面2个答案中有2个出于某种奇怪的原因谈论使用with
语句,介意我重写你的第二个代码段,使用with
吗?@Aran Fey刚刚做了,为什么不在with
之前创建摘要
,然后只使用with
块进行实际编写?因为下面2个答案中有2个出于某种奇怪的原因谈论使用with
语句,介意我重写你的第二个代码片段,用和一起使用吗?@Aran Fey刚刚完成了