python中文件操作中不同的文件操作有何差异_文件操作中open()与with open() as… 间的差异...

【导读】

在编写Python代码的时候,经常会操作各种文件,而在操作文件的时候,我们会经常用到:open() 和 with open() as... 这两种句式。那么这两个句式有什么不一样呢?

open()

例如:

fp = open("./aa.txt", "w+")

fp.write("This is a text file.")

fp.close()

以上是一个标准的文件操作(写)流程,分别由"打开文件"--"写入文件内容"--"关闭文件"这三个步骤完成。但这只是简短的几行代码,逻辑非常的清晰,但当操作写入文件中的语句(内容)多了后,往往程序员会忘记"关闭"这个文件。

下面从系统资源分配层面来讲,系统在执行这个程序时,都需要做些什么。

首先,在执行"fp = open("./aa.txt", "w+")"这行语句时,系统需要为这个文件操作腾出一个空地(运行内存),一直供这个文件操作使用,直至执行"fp.close()"语句时,相应的内存空间才会被释放。

那么,如果程序员真的忘记关闭这个文件了,这时候就造成了系统资源的长期占用(造成了浪费),又或者说,当程序发生了异常,而没能"关闭"这个文件,那么后面想执行文件删除、移动等操作就行不通了。

with... as...

为了解决上述的问题,Python提供了 with...as...语句来解决这一问题,下面这来看其操作过程:

with open("./aa.txt", "w+") as fp:

fp.write("This is a text file.")

print(fp.closed())

上面的操作,我们只操作了前两步,即"打开文件"--"写入内容","关闭文件"这一步没有了。原因是,with...as...是根据代码块(隶属)关系进行工作的,当程序执行在代码块内时,文件会一直保持打开状态,一旦当程序离开这个代码块(即不隶属这个区间)时,程序就会自动的关闭这个文件,实现更好的文件管理,最优的使用系统资源。

通过最后的文件状态查看语句"fp.closed()"可以看到文件退出该区块时,已经自动关闭了该文件。

喜欢 (5)or分享 (0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值