打开文件进行逐行处理的方法
with open('data.txt') as inf: for line in inf: #etc
VS
for line in open('data.txt'): # etc
我明白使用确保文件关闭时
“with-block”(suite?)被退出(或异常被反驳).所以我一直在使用,因为我在这里学到了.
Re for-loop:从搜索网络和SO,似乎是否文件
当循环退出时是关闭的是实现依赖的?和
我找不到关于这个结构如何处理的任何东西
例外.有人知道吗?
如果我错了以上的任何东西,我会欣赏更正,
否则有理由永远用于构建
用? (假设你有选择,即不受Python版本限制)
for line in open('data.txt'): # etc
是不是明确的引用打开的文件,那么你如何关闭它?
懒惰的方式是等待垃圾收集器清理,但这可能意味着资源不能及时释放.
所以你可以说
inf = open('data.txt')for line in inf: # etcinf.close()
现在如果在for循环中出现异常,会发生什么?该文件将不会明确关闭.
添加一个try / finally
inf = open('data.txt')try: for line in inf: # etcfinally: inf.close()
这是很多代码来做一些非常简单的 *** 作,所以添加了Python,以便以更可读的方式写这个代码.这让我们来到这里
with open('data.txt') as inf: for line in inf: #etc
所以,这是打开文件的首选方法.如果您的Python对于with语句来说太旧了,您应该使用try / finally版本的生产代码
总结以上是内存溢出为你收集整理的python – 逐行文件处理,for-loop vs with全部内容,希望文章能够帮你解决python – 逐行文件处理,for-loop vs with所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)