关闭文件 | 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学习站

相关文章
|
4月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
610 7
|
5月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
491 1
|
5月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1477 2
|
4月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
934 68
|
4月前
|
Cloud Native 算法 API
Python API接口实战指南:从入门到精通
🌟蒋星熠Jaxonic,技术宇宙的星际旅人。深耕API开发,以Python为舟,探索RESTful、GraphQL等接口奥秘。擅长requests、aiohttp实战,专注性能优化与架构设计,用代码连接万物,谱写极客诗篇。
Python API接口实战指南:从入门到精通
|
4月前
|
存储 Java 调度
Python定时任务实战:APScheduler从入门到精通
APScheduler是Python强大的定时任务框架,通过触发器、执行器、任务存储和调度器四大组件,灵活实现各类周期性任务。支持内存、数据库、Redis等持久化存储,适用于Web集成、数据抓取、邮件发送等场景,解决传统sleep循环的诸多缺陷,助力构建稳定可靠的自动化系统。(238字)
887 1
|
5月前
|
调度 数据库 Python
Python异步编程入门:asyncio让并发变得更简单
Python异步编程入门:asyncio让并发变得更简单
343 5
|
5月前
|
数据采集 存储 XML
Python爬虫入门(1)
在互联网时代,数据成为宝贵资源,Python凭借简洁语法和丰富库支持,成为编写网络爬虫的首选。本文介绍Python爬虫基础,涵盖请求发送、内容解析、数据存储等核心环节,并提供环境配置及实战示例,助你快速入门并掌握数据抓取技巧。
|
5月前
|
大数据 数据处理 数据安全/隐私保护
Python3 迭代器与生成器详解:从入门到实践
简介:本文深入解析Python中处理数据序列的利器——迭代器与生成器。通过通俗语言与实战案例,讲解其核心原理、自定义实现及大数据处理中的高效应用。
284 0

推荐镜像

更多