Python open()和with open() as的区别

1、open() 方法

介绍:打开一个文件并返回文件对象,如果该文件无法被打开,会抛出OSError。最后一定要调用close()方法保证关闭文件对象

语法:open( file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

mode参数
mode参数
**注意:
(1)r+:可读写,打开时不清空文件,可写到文件任何位置。默认在文件开始,因此会覆写文件。
(2)a+:可读写,打开时不清空文件,只能写到文件末尾。
(3)使用open()方法,最后一定要保证关闭文件对象,即调用close()方法。原因:当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘同时释放资源。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了。
**
这样直接打开文件,如果出现异常,如读取过程中文件不存在或异常,则直接出现错误,close方法无法执行,文件无法关闭。我们需要这样:

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

2、with open() as 用法

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值