当使用完一个资源后,需要手动的关闭它,比如操作文件、建立数据库连接等。但是在使用资源的过程中,如果遇到异常,很可能错误被直接抛出,导致来不及关闭资源。

try:file = open("test.txt", "a+")file.write("hello,python\n")
finally:file.close()

Python提供了with语句语法,来构建对资源创建与释放的过程,with是一个新关键词,并且总是伴随着上下文管理器出现,功能同上面的"try-finally"一样,代码更加简洁

with open("test.txt", "a+") as file:file.write("hello,with as")

with语句后面跟着open()方法,如果它有返回值的话,可以使用as’语句将其赋值给file,"as"是另一个关键词,指代open函数的返回值。在with语句块退出时,close()方法自动调用,即使write()出现异常,也能确保close()方法被调用。

#with...as...语句结束时,自动调用f.close()
#a表示:在文件末尾追加
def write_txt_file(path, txt):  # 写文件with open(path, 'a', encoding='gbk') as f:return f.write(txt)
#每次运行程序前,需要删除上一次的文件
#默认字符编码为GBK
def read_txt_file(path):with open(path, 'r', encoding='gbk') as f:return f.read()

Python基础知识-优雅的with as语句相关推荐

  1. 《Python基础知识-4判断和循环语句》

    1 判断(分支)语句 1.1 if 语句 1)简单 if 语句   在Python中,if 语句就是用来判断的,格式如下: if 要判断的条件:条件成立时,要做的事情...   例如: In [1]: ...

  2. Python基础知识、基本概念、下载python和pycharm、列表、元组、字典等等

    先看后赞,养成习惯.点赞收藏,人生辉煌! 目录 1.Python基础知识 1.1 基本概念 1.2 下载python和pycharm 1.3 格式化输出 1.4 键盘输入 1.5 运算符和表达式 2. ...

  3. python基础知识资料-Python基础知识汇总

    原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...

  4. python基本语法规则-python基础知识——基本语法

    在python基础知识这个系列中,准备罗列出我学习python的一些基础知识,包括:基本语法 控制语句 内置数据结构 模块和函数 字符串 文件处理 面向对象 异常处理 以前写机器学习算法喜欢使用Mat ...

  5. python语言的单行注释以井号开头_推荐|零基础学习Python基础知识

    原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...

  6. python的基础知识可以应用到哪方面-Python基础知识

    python基础 python的诞生 2002年,python 2.x 2008年,python 3.x python的命名 马戏团的名称 python简介 简单.易学 持快速开发. 跨平台. 开源. ...

  7. python爬虫数据可视化_python 爬虫与数据可视化--python基础知识

    摘要:偶然机会接触到python语音,感觉语法简单.功能强大,刚好朋友分享了一个网课<python 爬虫与数据可视化>,于是在工作与闲暇时间学习起来,并做如下课程笔记整理,整体大概分为4个 ...

  8. Python基础知识有哪些?你都知道吗

    Python基础知识有哪些?这几年,人工智能.数据分析等各行业的兴起,让更多人知道了Python,让Python是又火了一把.Python作为一个简介又实用的编程语言,让许多想从事信息技术行业的人准备 ...

  9. python基础知识学习笔记(2)

    python基础知识学习笔记(2) 整理一下python基础知识,以防忘记 文章目录 python基础知识学习笔记(2) python简洁的一行代码 python简洁的一行代码 1.交换两个变量 # ...

最新文章

  1. python twisted教程_python-twisted模块代码实例
  2. 通过一个实际案例,彻底搞懂 HashMap!
  3. 二叉树的非递归遍历(统一的模板)
  4. reactjs antd(ant-design)安装、基本使用及css样式的按需引入
  5. Redis系列(二):Redis缓存穿透和缓存雪崩是什么?
  6. 【转载】别了,摩托罗拉(十):“战争部落”和“独立王国”
  7. 百万年薪的腾讯员工买得起深圳房子吗?
  8. 多重共线性问题的几种解决方法
  9. 数字图像处理与应用——图像滤波技术
  10. 和利时HOLLYSYS MACS-K系列DCS介绍
  11. 【JVM学习笔记】JVM内存区域定义与内存结构
  12. 利用条形码生成器在Word 2013中轻松制作条形码的方法
  13. PHP之父Rasmus Lerdorf演讲:激情下的PHP 百作坊
  14. 《纸短情长》世间最美的情书♡摘录
  15. 如何使用xbrowser图形化连接centos
  16. iphone光感测试软件,苹果iPhone12增加人物检测辅助功能,利用激光雷达帮盲人群体...
  17. 职场28岁现象:最好的关于职业规划的文章
  18. 云原生时代,企业如何选取研发模式,并通过云效流水线落地
  19. Python 数据可视化基础教程
  20. 利用autossh反向代理实现内网穿透

热门文章

  1. Codeforces Round#310 div2
  2. R语言学习笔记 (入门知识)
  3. oracle自定义函数获取省份,oracle 自定义函数 方法 基本例子
  4. php 网页截屏,怎么用PHP实现网页截图
  5. python turtle调整画布宽高_turtle.screensize改变不了窗口大小?
  6. 多特征值数据预处理_「人工智能」No.6 特征工程之数据预处理
  7. html焦点图自动播放纯代码,jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)...
  8. oracle触发器 select into,Oracle触发器中selectinto报错no_data_found异常处理
  9. Linux显示5 9行的数据,Linux复习
  10. jpa query oracle 参数int为空_撸一个预言机(Oracle)服务,真香!—中篇