引用文章:open()和with open() as的区别

file = open("test.txt","r")
for line in file.readlines():print line
file.close()

这样直接打开文件,如果出现异常,如读取过程中文件不存在或异常,则直接出现错误,close方法无法执行,文件无法关闭

with open("test.txt","r") as file:
for line in file.readlines():print line

用with语句的好处,就是到达语句末尾时,会自动关闭文件,即便出现异常。

with语句实际上是一个非常通用的结构,允许你使用所谓的上下文管理器。上下文管理器是支持两个方法的对象:enter__和__exit

方法__enter__不接受任何参数,在进入with语句时被调用,其返回值被赋给关键字as后面的变量。

方法__exit__接受三个参数:异常类型、异常对象和异常跟踪。它在离开方法时被调用(通过前述参数将引发的异常提供给它)。如果__exit__返回False,将抑制所有的异常。

文件也可用作上下文管理器。它们的方法__enter__返回文件对象本身,而方法__exit__关闭文件

file= open("test.txt","r")
try:for line in file.readlines():print line
except:print "error"
finally:file.close()

with语句作用效果相当于上面的try-except-finally

python 文件操作 open()与with open() as的区别(打开文件)相关推荐

  1. java文件指针,Java 测试文件指针,java测试指针,两种方法打开文件并进行内

    Java 测试文件指针,java测试指针,两种方法打开文件并进行内 两种方法打开文件并进行内容定位package com.ronsoft.books.nio.channels;import java. ...

  2. load()是python文件操作的函数_python基础总结(函数,文件操作)

    divmod(a, b)#分别取商和余数 float([x])#将一个字符串或数转换为浮点数.如果无参数将返回0.0 int([x[, base]])#将一个字符转换为int类型,base表示进制 l ...

  3. Python文件操作小案例:交替合并两个记事本文件

    问题描述:编写程序,接收两个记事本文件名字,然后交替把两个记事本文件中的行合并到result.txt文件中,你一行来我一行,最后把行数较多的文件剩余内容全部写入目标文件. 参考代码: -------- ...

  4. 按平均成绩排行c语言文件操作,学生成绩管理系统(c语言结构体以及文件操作)实验报告精选.doc...

    学生成绩管理系统(c语言结构体以及文件操作)实验报告精选 C程序设计 实验报告 编号: 姓名院系学号任课教师于萧指导教师实验地点实验时间实验名称文件操作同 组 人无预习报告(对实验主要内容的认识)得分 ...

  5. 文件操作的实例——下载并合并流式视频文件

    目录 前言 一.操作环境 二.操作步骤 说明 前言 c语言的文件操作内容比较繁琐,如果只看代码不上机的话就没办法有效掌握.最近我在线观看学习视频,我就突发灵感,想到可以通过下载流式媒体文件并进行合并来 ...

  6. C#文件操作从入门到精通(1)——INI文件操作

    点击这里:微软官方文档查看writePrivateProfileString函数定义 常见错误: 1.中文路径写入失败,为啥? 2.文件不是全路径,只有文件名也会写入失败: 3.GetLastErro ...

  7. drawboard pdf拆分文件_掌握在线PDF拆分技巧,从此打开文件不再处于“加载中”...

    随着生活节奏的加快,我们身边的事物渐渐地处于"加载中",到奶茶店买杯奶茶需要加载,玩个游戏处于"加载中",就连工作时打开一个PDF文件都是"加载中&q ...

  8. 服务器上的文件总提示只读,如何解决域内成员打开文件老是以只读方式打开

    复制文件或文件夹从服务器到时是不同的域的成员服务器 ,第二个服务器可能不标识第一个服务器的本地组. 出现此问题的第二个服务器无法识别安全标识符 (SID),第一台服务器的本地组的原因. 本文讨论一种解 ...

  9. chm文件在服务器看不到内容,电脑不能打开文件secedit.chm怎么办_网站服务器运行维护,电脑...

    win10系统搜索不到无线网络怎么办_网站服务器运行维护 win10系统搜索不到无线网络的解决方法:1.首先按[win+r]组合键打开运行窗口,输入service.msc,点击[确定]:2.然后开启[ ...

最新文章

  1. python读写csv确定编码格式_Python使用utf8编码读写csv文件
  2. swift 字符串中查找字符位置
  3. iOS系统 越狱系统还原(平刷)
  4. 线程池的简单创建和实现
  5. 周末给女友讲了遍加密算法,没想到...
  6. python中的序列类型数据结构元素的切片操作_浅析python中的分片与截断序列
  7. php mysql 非空_PHP-为什么mysql接受非空字段为null
  8. 布局设置-Meta标签 and Media(来自bootstrap)
  9. Bitwise Operation Explained
  10. c 打印二叉树_树、二叉树、二叉查找树(二叉搜索树)
  11. WIN2008R2 激活
  12. c语言粗大误差程序框图,《粗大误差C语言程序.doc
  13. 计算机网络第三章课后答案第七版(谢希仁著)
  14. 5G SA信令流程介绍
  15. 手工纸盒子_折纸盒与纸盒子的折法手工制作图解教程大全 - 纸艺网
  16. 合天网安实验室CTF-基础50-0x01
  17. 小米手机Home键问题
  18. c语言平时成绩占总分多少,平时成绩占多少啊 大学
  19. (五)比赛中的CV算法(上)cv基础知识和opencv的api
  20. python | 时间序列折线图

热门文章

  1. js模板引擎_VueSSRNuxt.js
  2. 数据库表-权限表应用
  3. 【转】ABAP内表数据和JSON格式互转
  4. ABAP-DOI技术的优化
  5. EXCEL如何验证重复数据?
  6. ABAP 几个文件相关的函数
  7. 成本中心、作业中心、工作中心的区别
  8. 如何利用永洪自服务数据集,构建强大的数据处理能力?
  9. 虚拟和现实,两种不同身份的切换——留美95后的游戏人生
  10. android 窗口监听按键,Android编程实现Dialog窗体监听的方法