Python with语句函数是否关闭文件?
在这个简单的文件IO操作中,Python with语句函数是否关闭文件?,python,with-statement,Python,With Statement,在这个简单的文件IO操作中,x.txt是否在f.read末尾关闭? 另外,我如何检查该文件是否仍处于打开状态 with open("x.txt") as f: data = f.read() 当控件离开with语句的代码块时,f引用的文件对象将关闭。事实上,这就是为什么首先要使用with语句打开文件。除了完成后自动关闭文件外,构造没有任何作用 您可以通过打印以下内容自行测试: : 在处理文件时,最好使用with关键字 物体。这样做的好处是,文件在关闭后会正确关闭 它的套件完成了,即使在
x.txt
是否在f.read
末尾关闭?
另外,我如何检查该文件是否仍处于打开状态
with open("x.txt") as f:
data = f.read()
当控件离开with语句的代码块时,
f
引用的文件对象将关闭。事实上,这就是为什么首先要使用with语句打开文件。除了完成后自动关闭文件外,构造没有任何作用
您可以通过打印以下内容自行测试:
:
在处理文件时,最好使用with关键字
物体。这样做的好处是,文件在关闭后会正确关闭
它的套件完成了,即使在途中出现了异常。它是
也比编写等效try finally块短得多:
是,使用
和
打开将关闭文件。它会在块结束后关闭,而不是在读取
之后,如果运行f.seek(0)
,则可以再次读取文件。我刚刚在周二启动了Python。我感谢您的帮助。可能值得在with
语句中添加另一个print f.closed
,以准确显示它发生的位置(特别是Rafael Barros在评论中所作的区分)。事实上,这是从2.6开始的。在2.5中(引入了with
),内置对象还不支持上下文管理器界面。@ivan_pozdeev感谢您提供的信息
with open("x.txt") as f:
data = f.read()
## Still inside with block ##
print f.closed # Output: False
## Outside of with block ##
print f.closed # Output: True