som*_*me1 11 python import file
对于打开文件,我习惯了显然较旧的语法:
f = open("sub_ranks.txt","r+")
for line in f:
...
f.close()
Run Code Online (Sandbox Code Playgroud)
我被告知现在使用这种语法几次...
with open("sub_ranks.txt", "r+") as f:
for line in f:
...
Run Code Online (Sandbox Code Playgroud)
在使用"with"语句时,第二个示例中仍然需要文件对象"close"语句吗?
如果是这样,是否有任何具体的理由使用"with"语句进行文件读取?在这种情况下,它(稍微)更冗长.
您当前问题的答案是"否".该with块确保当控制离开块时文件将被关闭,无论出于何种原因,包括异常(好吧,排除某人将电源线拉到您的计算机上以及其他一些罕见的事件).
所以使用with块是个好习惯.
现在可以说,一个仅用于阅读,然后无法关闭它是不是打开的文件是太大的问题.当垃圾收集到来时(无论何时可能),如果没有对它的引用,那么该文件也将被关闭; 最迟将在您的程序退出时发生.实际上,官方文档中的几个代码示例忽略了关闭仅为读取访问而打开的文件.在编写文件或使用"示例"中的"读取加"模式时,您肯定需要关闭该文件.由于未能正确关闭文件,她在SO上处理不完整/损坏的文件有很多问题.
| 归档时间: |
|
| 查看次数: |
6543 次 |
| 最近记录: |