翻开Python的宝匣:深度解析open()函数,解锁更多操作技巧。

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 翻开Python的宝匣:深度解析open()函数,解锁更多操作技巧。

前言


Python中的open函数用于打开一个文件,创建一个file对象,之后相关的方法才可以调用它进行读或者写。


0、Open介绍


在Python中,open()函数是用于打开文件的内置函数,可以读取或写入文件的内容。它的一般语法是:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

一、参数说明

# file: 要打开的文件名或文件路径。
# mode: 打开文件的模式。默认是 'r'(只读模式),也可以是 'w'(写入模式)、'a'(追加模式)、'x'(独占创建模式)等。具体的模式说明如下:
# 'w':打开一个文件只用于写入,如果该文件已存在则打开文件,并且从头开始编辑,即原有内容会被删除。如果该文件不存在,则创建新文件。
# 'r':以只读的方式打开文件。文件的指针将会放在文件的开头。
# 'b':二进制模式
# '+':打开一个文件进行更新,可读可写
# 'a':打开一个文件用于追加,如果该文件已经存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,则创建新文件进行写入。
# 'x':独占创建模式,创建新文件并以写入模式打开,如果文件已存在则会引发 FileExistsError。
# 't':文本模式,以文本方式读取或写入文件。
# 注意:还有两两合并的一些模式,是两种单一模式的作用相加。
# 对象方法:
# read(size):返回整个文件, 如果指定size则返回size个字符。
# readline():返回一行
# readlines(): 返回全部行的一个列表
# write(): 写入字符
# close(): 关闭文件
f = open('tes.txt', 'r')
f.read()
# 使用之后一定要记得关闭,因为会占用系统资源
f.close()


二、使用with语句


使用open函数直接打开文件,如果忘记使用close函数的话,会占用系统资源,为了解决这个问题,我们使用with语句来自动帮助我们调用close()方法。


官方一点说:


  • 使用with语句的主要好处是可以自动管理文件的打开和关闭。当with语句结束时,文件会自动关闭,这样可以避免忘记手动关闭文件而导致的资源泄漏。
  • 另外,使用with语句还可以让代码更加简洁明了。在with语句块中,文件对象的作用域仅限于该语句块中,因此不必担心文件对象在其他部分被意外修改或调用。这样可以更好地控制文件对象的作用范围,提高代码的可读性和可维护性。
  • 除了文件操作外,with语句还可以用于其他需要资源管理的场景,如数据库连接、网络连接等。在这些场景中,使用with语句可以保证资源的正确打开和关闭,避免资源泄漏和错误。


with open(文件名, 模式) as 文件对象:
  文件对象.方法()
# 本人比较常用的写法是通过迭代器访问数据然后加入到一个列表中去
# 举例
# 构建空的列表
word_dic = []
# 通过迭代器访问: for word in f
# 用列表生成式直接将数据加入到一个空的列表中去
# 这里写的文件路径是相对路径,也可以写绝对路径,一般写绝对路径,不容易错误。
with open('./vocab.txt', 'r') as f:
    word_dic = set([word.rstrip() for word in f])


三、拓展延伸(其他文件操作的方法)


在Python中,open()函数是用于打开文件的内置函数,是最常用的文件操作方法之一。除了open()函数外,还可以使用一些其他方法来进行文件操作,具体如下:


  • 使用os模块的文件操作方法,如os.read()和os.write()等,可以用于对文件进行读写操作。
  • 使用shutil模块的文件操作方法,如shutil.copy()和shutil.move()等,可以用于复制、移动和删除文件等操作。
  • 使用pickle模块的dump()和load()方法,可以将Python对象序列化为二进制格式并保存到文件中,或从文件中读取二进制格式并反序列化为Python对象。
  • 使用csv模块的reader()和writer()方法,可以读写CSV文件格式。
  • 使用pandas库的read_csv()和to_csv()方法,可以读写CSV文件,并将其转换为DataFrame格式进行数据处理。

需要注意的是,这些方法的使用场景和适用范围不同,要根据具体的需求选择合适的方法。如果只需要进行简单的文件读写操作,建议使用open()函数。如果需要进行复杂的数据处理操作,可以考虑使用pandas库等高级工具。


参考文章:

Python open() 函数.

Python使用with open() as读写文件【必知必会】.


总结


想起来已经好几天没写博客了,每天好像也没做什么工作,但是就是感觉很累,离谱!

相关文章
|
7天前
|
数据采集 JSON API
如何利用Python爬虫淘宝商品详情高级版(item_get_pro)API接口及返回值解析说明
本文介绍了如何利用Python爬虫技术调用淘宝商品详情高级版API接口(item_get_pro),获取商品的详细信息,包括标题、价格、销量等。文章涵盖了环境准备、API权限申请、请求构建和返回值解析等内容,强调了数据获取的合规性和安全性。
|
5天前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
44 5
|
18天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
43 18
|
10天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
40 8
|
19天前
|
Python
Python中的函数
Python中的函数
32 8
|
18天前
|
存储 缓存 Python
Python中的装饰器深度解析与实践
在Python的世界里,装饰器如同一位神秘的魔法师,它拥有改变函数行为的能力。本文将揭开装饰器的神秘面纱,通过直观的代码示例,引导你理解其工作原理,并掌握如何在实际项目中灵活运用这一强大的工具。从基础到进阶,我们将一起探索装饰器的魅力所在。
|
22天前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
30 7
|
24天前
|
XML 数据采集 数据格式
Python 爬虫必备杀器,xpath 解析 HTML
【11月更文挑战第17天】XPath 是一种用于在 XML 和 HTML 文档中定位节点的语言,通过路径表达式选取节点或节点集。它不仅适用于 XML,也广泛应用于 HTML 解析。基本语法包括标签名、属性、层级关系等的选择,如 `//p` 选择所有段落标签,`//a[@href='example.com']` 选择特定链接。在 Python 中,常用 lxml 库结合 XPath 进行网页数据抓取,支持高效解析与复杂信息提取。高级技巧涵盖轴的使用和函数应用,如 `contains()` 用于模糊匹配。
|
22天前
|
C语言 开发者
【C语言】断言函数 -《深入解析C语言调试利器 !》
断言(assert)是一种调试工具,用于在程序运行时检查某些条件是否成立。如果条件不成立,断言会触发错误,并通常会终止程序的执行。断言有助于在开发和测试阶段捕捉逻辑错误。
31 5
|
1月前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
76 2

推荐镜像

更多