首页 > 其他分享 >14:关闭流要点2_with上下文管理_现场还原

14:关闭流要点2_with上下文管理_现场还原

时间:2022-11-21 20:45:18浏览次数:52  
标签:文件 14 对象 finally 关闭 要点 close 上下文

###with 语句(上下文管理器)

with 关键字(上下文管理器)可以自动管理上下文资源,不论什么原因跳出 with 块,都能确保文件正确的关闭,并且可以在代码块执行完毕后自动还原进入该代码块时的现场。

【操作】使用 with 管理文件写入操作

s = ["高淇\n", "高老三\n", "高老五\n"]
with open(r"d:\bb.txt", "w") as f:
    f.writelines(s)

输出结果:

高淇
高老三
高老五

###close()关闭文件流

由于文件底层是由操作系统控制,所以我们打开的文件对象必须显式调用 close()方法关闭文件对象。当调用 close()方法时,首先会把缓冲区数据写入文件(也可以直接调用 flush()方法),再关闭文件,释放文件对象。

为了确保打开的文件对象正常关闭,一般结合异常机制的 finally 或者 with 关键字实现无论何种情况都能关闭打开的文件对象。

【操作】结合异常机制 finally 确保关闭文件对象

try:
    f = open(r"my01.txt","a")
    str = "gaoqi"
    f.write(str)
except BaseException as e:
    print(e)
finally:
    f.close()

输出结果:

gaoqigaoqigaoqi

 

标签:文件,14,对象,finally,关闭,要点,close,上下文
From: https://www.cnblogs.com/yuanzijian/p/16913137.html

相关文章

  • poj 1423 Big Number<<求N!位数>>
    BigNumberTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:27542Accepted:8789DescriptionInmanyapplicationsverylarg......
  • [题解] CF1149D Abandoning Roads
    难得自己想出来一道3000分的题,虽然说考试的时候打挂了...首先先对较小的边缩点,然后求连通块内的最短路。显然,连通块内其实想怎么走就怎么走,但不能走较大的边。然后不同......
  • 提醒:EasyHub有14个新套件等你使用
    EasyHub是优维打造的一个权威标准的资源共享平台!优维将多年积累沉淀下来的最佳实践经验变成用户触手可及的资源,立足于各种运维场景,打造了丰富的资源套餐,覆盖云原生/DevOps......
  • 7:with上下文管理
    finally块由于是否发生异常都会执行,通常我们放释放资源的代码。其实,我们可以通过with上下文管理,更方便的实现释放资源的操作。with上下文管理的语法结构如下:withcon......
  • ORA-14551: 无法在查询中执行 DML 操作
    最近在调试一个带DML操作的函数时,一直不成功,在PL/SQL中测试时没问题,通过SQL语句调用函数时就不行了,刚开始一直没找到原因,后来无意间把函数中捕获异常的代码注释掉,终于......
  • 代码随想录算法训练营第四天|24. 两两交换链表中的节点 19.删除链表的倒数第N个节点
     今日任务●24.两两交换链表中的节点●19.删除链表的倒数第N个节点●面试题02.07.链表相交●142.环形链表II●总结详细布置24.两两交换链表......
  • 114:设计模式_工厂模式实现
       设计模式是面向对象语言特有的内容,是我们在面临某一类问题时候固定的做法,设计模式有很多种,比较流行的是:GOF(GoupOfFour)23种设计模式。当然,我们没有必要全部学习......
  • 上周热点回顾(11.14-11.20)
    热点随笔:· SpringBoot框架下实现Excel服务端导入导出 (葡萄城技术团队)· 当xxl-job遇上docker→它晕了,我也乱了! (青石路)· C#多线程(三)线程高级篇 (xiaolip......
  • nexus-2.14.2-01-bundle构建maven私服
    nexus-2.14.2-01-bundle构建maven私服一、下载nexus地址:​​https://sonatype-download.global.ssl.fastly.net/repository/repositoryManager/oss/nexus-2.14.8-01-bundle.......
  • 2022 11 14 VAN Technical Proposal A
    Faraway.Goodmorning.Idon'tknow.Yeah,doyouthinkwehaveeverybodyinthecallfromeachsidetogetstarted?Ithinkwearecompleted.So,ifthecrossd......