文件操作完成后,需要调用 close 方法将文件关闭。通常,程序退出时将自动关闭文件对象(也可能在退出程序前这样做),因此是否将读取的文件关闭并不那么重要。然而,关闭文件没有坏处,在有些操作系统和设置中,还可避免无意义地锁定文件以防修改。另外,这样做还可避免用完系统可能指定的文件打开配额。
对于写入过的文件,一定要将其关闭,因为 Python 可能缓冲你写入的数据(将数据暂时存储在某个地方,以提高效率)。因此如果程序因某种原因崩溃,数据可能根本不会写入到文件中。安全的做法是,使用完文件后就将其关闭。如果要重置缓冲,让所做的修改反映到磁盘文件中,但又不想关闭文件,可使用方法 flush。然而,需要注意的是,根据使用的操作系统和设置,flush 可能出于锁定考虑而禁止其他正在运行的程序访问这个文件。只要能够方便地关闭文件,就应将其关闭。
要确保文件得以关闭,可使用一条 try/finally 语句,并在 finally 子句中调用 close。

# 打开文件
try: 
    # 将数据写入到文件中
finally: 
    file.close()

实际上,有一条专门为此设计的语句,那就是with语句。

with open("somefile.txt") as somefile: 
    do_something(somefile) 

with 语句让你能够打开文件并将其赋给一个变量(这里是somefile)。在语句体中,你将数据写入文件(还可能做其他事情)。到达该语句末尾时,将自动关闭文件,即便出现异常亦如此。