Python中的with as语句

《Python中文件的输入》中提到,对于在完成文件写入之后,要通过close()方法关闭已经打开的文件,这样才能保证后续对文件操作的正确性。

1 未关闭文件带来的影响

有一个名为“text.txt”的文件,该文件中的内容是“Hello Python!”。接下来把该文件中的内容改为“I LOVE PYTHON.”,其代码如下所示。

file = open('text.txt', 'w')
file.write('I LOVE PYTHON.')
file.close()

如果此时在通过write()方法写入之后,没有调用close()方法关闭文件,即只保留上述代码的前两行,代码执行完毕后,打开text.txt文件,此时发现文件中之前的内容已经被清空,但是新的内容并没有被写入。也就是说,write()方法执行失败。

2 with as语句

在文件操作的编程中,经常会忘记调用close()方法。而通过with as语句,可以不用显式地调用close()方法,即可完成文件的写入。

2.1 with as语句的格式

with as语句的格式如下所示。

with 表达式 as 变量:
    语句

2.2 with as语句的执行过程

with as语句首先执行“表达式”,之后将表达式的返回值保存到“变量”中,最后执行“语句”。而with as语句的特殊点在于当“语句”执行完成后,会自动释放“变量”保存的对象所占的内容,即自动完成收尾动作。

2.3 with as语句的使用

可以通过with as语句,不显式调用close()关闭文件,即可完成写入动作,代码如下所示。

with open('text.txt', 'w') as file:
    file.write('I LOVE PYTHON.')

从以上代码中可以看出,虽然没有显示调用close(),当with as语句的代码执行完成后,会自动调用close()方法,释放打开的文件。

猜你喜欢

转载自blog.csdn.net/hou09tian/article/details/133696728