面试题答案
一键面试with open('example.txt', 'r', encoding='utf-8') as file:
for line in file:
print(line.strip())
使用上下文管理器在文件操作中是更好的选择,原因如下:
- 自动关闭文件:使用
with
语句时,当代码块执行完毕,无论是否发生异常,文件都会自动关闭。这样可以避免因忘记调用file.close()
而导致的资源泄漏问题。例如在复杂的程序流程中,若没有with
语句,在函数中途返回或者发生异常时,可能无法及时关闭文件,而with
语句能确保文件一定会被关闭。 - 异常安全:如果在文件操作过程中发生异常,
with
语句会自动处理异常并关闭文件。例如文件读取一半时发生了错误,with
语句会确保文件正确关闭,不会造成文件处于一种未定义的状态。