with 具有返回值的操作 as 变量:
这是一个基础语法,可在 with 代码域中使用这个变量,指向的就是你操作返回的内容
比如 with 打开文件 as 文件变量
with 打开数据库连接 as 连接变量
这个样子
不知道你这个问题是否已经解决, 如果还没有解决的话:我们注意文件操作完之后需要手动调用close()方法关闭文件流。实际开发中建议将调用close函数的代码块放在finally块中以防止出现异常导致文件流不能被关闭。标准的使用方式是:
f = open('my_file.txt', encoding='utf-8')
try:
print(f.read())
finally:
f.close()
那么,有没有更加便捷的方式呢?答案是有的:那就是通过with as
语句来操作文件。其语法格式是:
with 表达式 [as target]:
代码块
此格式中,用[]括起来的部分可以使用,也可以省略。其中,target参数用于指定一个变量,该语句会将表达式指定的结果保存到该变量中。with as 语句中的代码块如果不想执行任何语句,可以直接使用 pass 语句代替。
用with as改造上面的代码就是:
with open('my_file.txt', encoding='utf-8') as f:
print(f.read())
不用手动关闭文件流。
Python中的with……as语句可以方便地管理代码中需要进行资源申请、使用和释放的情况,比如文件的读写、数据库的连接等。它可以自动完成资源释放的操作,避免了手动关闭文件等资源时出现的繁琐错误。
with语句后面需要跟一个上下文管理器的对象,这个对象必须实现__enter__()和__exit__()方法。enter()方法在with语句块执行前被调用,它的返回值会传递给as后的变量,而__exit__()方法则在with语句块执行完成后被调用,无论是正常退出还是异常退出都会执行,用于释放资源