python上标和下标(Python中的上下文管理器——with关键字的使用)python初学 / python上下文管理器与with语句...

wufei123 发布于 2024-05-15 阅读(14)

之前,我们聊过open()函数打开一个文件的大致方法【Python中的文件读写——open()函数】:f = open(mytxt.txt, r) mytxt = f.read() f.close()即打开文件,完成文件操作,关闭文件。

事实上,我们在打开文件的时候,可能会遇到一些难以预料的事情,例如编码错误,打开模式不正确导致的程序崩溃,因此,我们可以用之前学习过的异常处理方式来改进我们的代码【Python中的异常处理try/except

】:f = open(mytxt.txt, r) try: mytxt = f.read() finally: f.close()以上代码我们对可能发生异常的代码处进行 try 捕获,如果发生异常时执行 except 代码块,finally 代码块是无论什么情况都会执行,所以最终文件会被关闭,不会因为执行异常而占用资源。

那么还有没有什么改进方式呢?我们还可以使用with关键字:withopen(mytxt.txt, r) as f: mytxt = f.read()Python中的with封装了异常处理语句,也就是try/except,同时with关键字也会自动调用f.close()方法,所以上面这个with的写法与我们利用try/excpt改进后的写法是一致的,我们看到他更加简洁。

with 语句实现原理建立在上下文管理器之上本次我们不涉及到具体的原理,因为这涉及到class类的定义的问题总之,with语句使代码更清晰、更具可读性, 它简化了文件流等公共资源的管理在处理文件对象时使用 with 关键字是一种很好的做法。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

大众 新闻63904