有些任务,可能事先设置,时候作清理工做,以下面一段程序:python
f = open('tmp.txt') data = f.read() print(data)
是否是忘了什么?没错,很明显忘记关闭文件句柄。另外,对文件读取可能发生的异常在程序中没有作任何处理。下面使用 try except finally来处理,code
f = open('tmp.txt') try: data = f.read() print(data) except BaseException as msg: print(msg) finally: f.close()
虽然这段代码运行良好,但太过冗长,这里使用 with as 来写是这样的,it
with open('tmp.txt') as f: data = f.read() print(data)