python3 open()内置函数

操作文件时,一般需要:

  • 打开文件
  • 操作文件

一、打开文件:open(file[,mode=r])

  • open() 函数用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
  • open() 函数常用形式是接收两个参数:文件名(file)和模式(mode),即文件路径file和以mode方式打开文件。

注意: 使用 open() 函数一定要保证关闭文件对象,即调用 close() 函数。

打开文件的模式

mode描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

更多mode参考

可读模式r

//log.txt可读模式下不存在会报错。
f = open('log.txt' , 'r')
f.close()

可写模式w

//没有log.txt运行后会自动创建log.txt文件
f = open('log.txt' , 'w')
f.close()

追加模式a

//没有log.txt运行后会自动创建log.txt文件
f = open('log.txt','a')
f.close()

刚开始没有log.txt文件,运行后出现log.txt文件
在这里插入图片描述

二、 操作

f = open('log.txt','r')
data = f.read() #读文件
f.close() #关闭文件

上面代码存在的问题:如果在读写时出现异常忘了异常处理,不会执行到关闭方法;有可能写代码忘了写f.close()语句

解决:

  1. 一般使用try catch finally语句处理,以避免因读取文件时异常的发生而没有关闭问题的处理
f = open('log.txt','r')
try:
	data = f.read() #读文件
finally:
	f.close()
  1. 上面解决方法代码太长,可以使用with(上下文管理)更优雅的方法,with还可以很好的处理上下文环境产生的异常,可以避免忘记写关闭方法。
with open('log.txt','r') as f:
	data = f.read()

运行说明:with后面接的对象返回的结果赋值给f。此例当中open函数返回的文件对象赋值给了f;with会自已获取上下文件的异常信息。

三、上下文管理,with如何工作?

  • with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。

  • 紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。

运行流程:

  1. _enter_()方法被执行
  2. _enter_()方法返回的值,赋值给变量f
  3. 执行代码块,f.read()的值赋值给变量data
  4. _exit_()方法被调用
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值