Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python with语句函数是否关闭文件?_Python_With Statement - Fatal编程技术网

Python with语句函数是否关闭文件?

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关键字 物体。这样做的好处是,文件在关闭后会正确关闭 它的套件完成了,即使在

在这个简单的文件IO操作中,
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