天天看点

关闭文件 | Python从入门到精通:高阶篇之四十五

打开文件 | Python从入门到精通:高阶篇之四十四

关于文件的读、写操作,保存,删除,比较麻烦,我们先对关闭文件来做出说明。

关闭文件

创建一个demo.txt文件

关闭文件 | Python从入门到精通:高阶篇之四十五

先打开一个文件:

file_name = 'demo.txt'           

调用open()来打开文件:

file_obj = open(file_name)           

当我们获取了文件对象以后,所有的对文件的操作都应该通过对象来进行。

读取文件中的内容:

content = file_obj.read()           

read()方法,用来读取文件中的内容,它会将内容全部保存为一个字符串返回。

将内容打印出来:

print(content)           

执行结果:

关闭文件 | Python从入门到精通:高阶篇之四十五

在对文件进行操作之后必须要对文件进行关闭。

调用close()方法来关闭文件

file_obj.close()           
关闭文件 | Python从入门到精通:高阶篇之四十五

执行结果一样,如果能看出对文件进行关闭呢?

我们对文件进行读取:

file_obj.read()           
关闭文件 | Python从入门到精通:高阶篇之四十五

程序出错了,是因为不能对已经关闭的文件进行操作,所以程序出错。

但是我们对于close的调用并不常见,因为比较麻烦,每次都必须在close之前去编写程序,有时候可能会忘记。python为了解决这种麻烦,提供了一种方法。

with ... as 语句

with open(file_name) as file_obj :
    print(file_obj.read())           
关闭文件 | Python从入门到精通:高阶篇之四十五

with

语句中可以直接使用

file_obj

来做文件操作。

此时我们在with方法外面输出结果,来对比一下:

print(file_obj.read())           
关闭文件 | Python从入门到精通:高阶篇之四十五

此时这个文件只能在with中使用,一旦with结束则文件会自动close()。

接下来我们来进一步完善我们的代码:

file_name = 'hello'

with open(file_name) as file_obj :
        print(file_obj.read())           

此时明显hello文件是不存在的。

关闭文件 | Python从入门到精通:高阶篇之四十五

此时因为文件不存在,出现了异常,若我们想对文件异常处理该怎么办呢?

我们可以直接利用

try...except

进行处理。

file_name = 'hello'

try:
    with open(file_name) as file_obj :
        print(file_obj.read())
except FileNotFoundError:
    print(f'{file_name} 文件不存在~~')           
关闭文件 | Python从入门到精通:高阶篇之四十五

如果修改代码:

file_name = 'demo.txt'           
关闭文件 | Python从入门到精通:高阶篇之四十五

如果存在,则可以正常输出,且关闭文件。

配套视频课程,点击这里查看

获取更多资源请订阅

Python学习站