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

简介: 本节介绍了关闭文件的两种方法:close()和with ... as 。

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

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

关闭文件

创建一个demo.txt文件

image.png

先打开一个文件:

file_name = 'demo.txt'

调用open()来打开文件:

file_obj = open(file_name)

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

content = file_obj.read()

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

print(content)

执行结果:

image.png

在对文件进行操作之后必须要对文件进行关闭。
关闭文件
调用close()方法来关闭文件

file_obj.close()

执行结果:

image.png

执行结果一样,如果能看出对文件进行关闭呢?
我们对文件进行读取:

file_obj.read()

执行结果:

image.png

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

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

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

执行结果:

image.png

with语句中可以直接使用file_obj来做文件操作。
此时我们在with方法外面输出结果,来对比一下:

print(file_obj.read())

执行结果:

image.png

此时这个文件只能在with中使用,一旦with结束则文件会自动close()。
接下来我们来进一步完善我们的代码:

file_name = 'hello'

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

此时明显hello文件是不存在的。
执行结果:

image.png

此时因为文件不存在,出现了异常,若我们想对文件异常处理该怎么办呢?
我们可以直接利用try...except进行处理。

file_name = 'hello'

try:
    with open(file_name) as file_obj :
        print(file_obj.read())
except FileNotFoundError:
    print(f'{file_name} 文件不存在~~')

执行结果:

image.png

如果修改代码:

file_name = 'demo.txt'

执行结果:

image.png

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

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

获取更多资源请订阅Python学习站

相关文章
|
3天前
|
Shell Python
Python Stock guess_indicators_daily_job.py文件的调整
Python Stock guess_indicators_daily_job.py文件的调整
12 1
|
3天前
|
XML 前端开发 数据格式
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据
BeautifulSoup 是 Python 的一个库,用于解析 HTML 和 XML 文件,即使在格式不规范的情况下也能有效工作。通过创建 BeautifulSoup 对象并使用方法如 find_all 和 get,可以方便地提取和查找文档中的信息。以下是一段示例代码,展示如何安装库、解析 HTML 数据以及打印段落、链接和特定类名的元素。BeautifulSoup 还支持更复杂的查询和文档修改功能。
11 1
|
1天前
|
Python
在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存
在Python中,利用`os模块`的`path.exists()`函数可判断文件是否存在,该函数对路径进行检查,存在则返回True,不存在则返回False。示例代码展示了如何检查'example.txt'文件是否存在并相应打印消息。此外,`os.path.isfile()`用于确认路径是否为文件,仅当是文件时返回True,否则返回False,同样配以示例说明其用法。
8 2
|
2天前
|
算法 物联网 数据库
Python 物联网入门指南(一)(4)
Python 物联网入门指南(一)
15 3
|
2天前
|
物联网 Linux 网络安全
Python 物联网入门指南(一)(3)
Python 物联网入门指南(一)
15 4
|
2天前
|
网络协议 物联网 Linux
Python 物联网入门指南(一)(2)
Python 物联网入门指南(一)
10 1
|
2天前
|
物联网 机器人 异构计算
Python 物联网入门指南(一)(1)
Python 物联网入门指南(一)
11 2
|
4天前
|
数据采集 NoSQL 中间件
python-scrapy框架(四)settings.py文件的用法详解实例
python-scrapy框架(四)settings.py文件的用法详解实例
9 0
|
4天前
|
存储 数据采集 数据库
python-scrapy框架(三)Pipeline文件的用法讲解
python-scrapy框架(三)Pipeline文件的用法讲解
7 0
|
6天前
|
缓存 数据处理 Python
python读取文件到缓存
python读取文件到缓存
12 1