首页 > Python笔记 阅读数:12

Python close()方法:关闭文件

有始就有终,当我们读取完文件后,就可以利用 close( ) 方法手动关闭文件,以回收系统资源,此外,操作系统同一时间能打开的文件数量也是有限的。及时回收系统资源是程序员的一种美德。
In [19]: fhand.close()   #关闭文件
close( ) 方法会先刷新缓冲区中还没有写入磁盘的信息,然后再关闭文件。一旦文件关闭,便不能对文件进行读写操作。

由于文件读写时都有可能产生 IOError 异常,一旦系统出错,后面的 close( ) 方法可能就不会被调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用 try...finally。
try:
    fhand = open ('python. txt', 'r') #以只读方式打开文件
    print(fhand.read()) #输出文件
finally:
    if fhand: #一旦文件打开,“终究”要关闭
       fhand.close () 
try...finally 是 Python 中常用的处理异常的语法,后面会详细讲解。

此外,还有一种情况,当我们打开文件后,由于疏忽,有时可能忘记关闭文件,这时可能会带来一些潜在问题,如内存泄漏等。为了更好地避免这类问题,Python 提供了 with 语句。with 语句的基本语法格式如下。
with expression as target:
    with-body

针对上述描述,我们可以如下打开文件。

with open('python.txt', 'r') as f:
    print(f.read())
引入了 with 语句,当我们访问完文件后,Python 便会根据上下文语境自动帮我们调用 close( ) 方法。这和前面的 try...finally 实现的功能类似,但是代码更为简单,且不必显式调用 close( ) 方法。

相关文章