如何正确关闭Python中的文件
在Python中处理文件时,通常在处理完文件后会显式调用close()
方法。这在许多情况下都可以正常工作,但对于初学者和来自其他编程语言的开发人员来说,这是一个常见的陷阱。
例如,考虑以下代码。如果在调用close()
方法之前抛出异常,文件将保持打开状态。在这种情况下,当程序崩溃时,代码将在调用close()
之前停止执行,导致文件保持打开状态。
f = open('filename', 'w')
f.write('Hello world!')
f.close()
解决这个问题的一种方法是将write()
调用封装在try
语句中。这样,您可以处理任何异常,并使用finally
确保文件被关闭。
f = open('filename', 'w')
try:
f.write('Hello world!')
finally:
f.close()
Python提供的另一种选择是使用with
语句,它将确保在使用文件的代码运行完毕后关闭文件。即使抛出异常,这个规则也适用。
with open('filename', 'w') as f:
f.write('Hello world!')