news 2026/10/27 1:55:40

Python中open函数的用法:读写文件的利器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python中open函数的用法:读写文件的利器

在编程领域里, open()函数是一个非常重要的并且是常用的非常普遍的函数, 它在关于文件这一种操作上是非常关键的并且起着非常重要的作用的。

咱们在这个#新手活力创作季#里面, 利用那个open()这个函数, 它可以让咱们去打开文件、读取里面的内容或者是往里面写入东西, 不仅如此, 它还能够让你去指定是哪种打开文件的模式、字符编码之类的东西, 这篇文章就是把open()这个函数的用法给你详细地进行介绍, 好让你能够轻轻松松地把这个用来操作文件的厉害工具给掌握住。

打开文件

在对具体的那个文件开展操作的这个事之前, 首先你需要把那个文件给打开。

打开文件, 参数为file=, mode设置为r, 其他参数保持默认为None。

在这其中, file这个东西表示的是文件的路径情况, 这个路径呢, 既可以是绝对路径也可以是用相对路径来表现的。至于mode这个参数来讲, 它就是专门用来指代打开文件时所使用的具体模式内容的, 而在实际的应用里面, 比较 使用或者常见的几种模式主要有下面这些:

关于模式 'r', 这指的是只读模式, 是用来读取文件内容的;而模式 'w’ 则是写入模式, 具体来说是这样的, 如果这个文件已经存在, 就会直接覆盖掉原来的内容, 要是这个文件根本就不存在的话, 它就去创建一个全新的文件。

第一种是追加模式, 它的符号是单引号里面包着一个字母a, 这种方式是把内容写到文件的结束位置去, 要是这个文件压根儿就不在电脑里面有话呢就直接弄出来一个新文件。第二种叫新建模式, 标记是一个x, 拿来建新的本子, 一旦发觉这玩意儿已经存在了那就没法打开会直接报错退出。

第三个是二进制模式, 代表的是一个b字符, 专门用来应对非文字类的东西比方说图片还有视频这样的数据集合。第四个参数为小写t的时候表示是文本方式, 这是默认的状态处理纯文字资料更方便点。

然后还有一个加号它放在开头或者后面意思是要同时对硬盘上的那块存储设备进行读写操作都行得到更新。最后还有个U代表通用换行符识别功能不过现在已经不推荐使用这一写法啦举例子来说咱们想把一个扩展名叫txt的文档以只能看不能写的样子启动起来就要这么写。

这玩意儿是用来读取那个叫作点号加上文字后缀文件的, 操作模式设置成了纯读取的方式。

读取文件内容

当你使用了open函数去把文件打开以后, 你是可以利用read这个方法呢来完成文件的这些内容的读取操作的呀。

read这个方法的参数是size, 如果指定了具体的数值就是读取那个数量的字节或者字符, 如果没有给具体数值也就是默认不指定那么就会把里面的东西全都读出来, 后面括号里表示的是读取一行的内容, 再后面一个括号表示的就是返回一个列表, 这个列表当中的每一样元素呢就代表着文件的某一行里的内容, 比方说要把文件里所有的内容都给它读出来的时候就可以这么用。

调用.read()方法来读取当前数据。

把当前的那个文件给关掉。

在读取完文件之后或者在对操作完成以后, 为了防止资源的浪费以及出现数据丢失的情况, 所以我们应该执行将文件关闭这个动作, 通过调用close()这样的方法就可以实现关闭文件的功能。

.close()

当你把文件给打开, 千万不要忘记去把这个文件给关闭掉, 这可是个非常好的程序员应该养成的那种好习惯。

写入文件

open()这个函数还能打开文件, 并且把内容写进去, 使用write()这个方法可以写入文件里面的内容, 示例代码如下。

把文件以只写的方式打开, 然后再往里面写入字符串“Hello, World!”。

当咱们在向文件里面写入内容的时候,要是这个文件压根儿就不存在, 那么系统就会自动地创建一个全新的文件来给咱们用;反过来讲, 要是说这个文件已经在那里放着、已然存在的, 那原来在里头有的那些老的内容就都会被直接覆盖掉, 一点不留。

文件操作的完整示例

这是一个完整文件的实际操作例子, 这个例子会打开一个名字叫做“.txt”的文件, 并且会对这个文件里面的内容进行一行一行的读取操作, 同时还会进行一行一行的写入操作。

先把那个叫作打开文件的动作去做掉, 然后把这个叫做open的东西拿来用, 里面传进去一个叫作点txt的字符串, 再给它加上一个模式参数是单字母r, 接下来要把读取文件内容的这个活儿干完, 于是使用前面的结果去调用一个空的括号方法, 再把最终的结果打印出来, 这时候再去执行关闭文件的步骤, 也就是调用前面那个对象的close方法, 然后又重新打开一次文件, 目的是为了写入内容, 还是用open这个函数, 里面依然传点txt和w参数, 然后把读进来的东西写成Hello和一个逗号和一个感叹号再加上空格的一个字符串, 最后把再次关闭了的那个文件结束操作。

其他参数和补充说明

上面提到这些算是常用的, 其实除了这些常见的用法里面用到的参数以外。关于open()函数这个东西来讲。它还有其他的不少别的参数是可以拿来用的:

: 这里指的是指定文件所使用的字符编码格式, 如果用户没有进行明确指定, 系统会自动默认为操作系统的默认字符编码格式: 这部分内容是用来指定在编码过程中如果出现错误, 应当采取怎样的处理办法。

比如来说, 可以把它设置为空字符串, 这样就可以直接选择忽略掉这些错误了: 这一段话的意思是用来控制对于换行符的处理方式, 这个功能主要是在文本模式下面使用的时候才生效的。

用户在调用open()这个办法来工作的时候, 需要养成那种能够妥善地对待错误情况的习惯性操作, 因为当文件在尝试打开的过程中遭遇了失败, 又或者在对文件执行读取和写入动作的时候出现了任何预料之外的异常现象, 系统就必须能够捕捉住这些发生的具体错误事件, 并且要紧接着展开一些相应的应对手段, 这样一来就可以有效地防止整个大的应用程序陷入彻底崩溃的绝境。

结语

通过运用那个open()这个函数呢, 我们能够比较方便地去打开文件来进行读写操作, 再加上因为可以灵活地选择模式, 所以使得对文件的各类操作变得越来越便捷, 一旦是你能够真正掌握关于open()这个函数具体应该怎么去用的情况, 那么对于你在进行文件相关操作以及处理数据时候来讲, 是会有帮助的。

在实际应用的过程当中, 需要去注意合理使用文件模式这件事儿, 同时呢也不能忘记把文件给关闭了, 这样一来就可以保证程序具有稳定性, 并且让资源得到有效利用啦。希望这篇内容能够给你带来一定的帮助, 然后呢也希望你在日后的使用过程之中可以变得更加娴熟自如、游刃有余。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/27 1:55:29

幻觉滚雪球:大模型错误如何自我强化

模型内部原理与“错误叠加/自圆其说”的四大根因 当大模型在生成早期出现微小偏差时,后续输出非但不能自发纠偏,反而会生成一系列虚假论据去合理化早期错误(学术界称为 Hallucination Snowballing,幻觉滚雪球,Zhang et al., ICML 2024)。其底层根因 1. 架构根因:因果掩…

作者头像 李华
网站建设 2026/10/27 1:55:23

Rhcsa 二

第一部分 网络服务第一章 Linux的例行性工作单一一次的任务计划(单一一次的定时任务)at程序包是否安装[rootlocalhost ~]# rpm -q at at-3.1.23-11.el9.x86_64 [rootlocalhost ~]# rpm -qa | grep -w at at-spi2-core-2.40.3-1.el9.x86_64 at-spi…

作者头像 李华
网站建设 2026/10/27 1:55:21

深圳标杆游学机构排名测评:从资源、执行到口碑的多维排序

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/27 1:54:54

学术年会策划公司哪家好?2026年靠谱学术会议

直接说结论:学术年会的筹备复杂度远高于普通商务会议——论文征集、审稿对接、日程编排、嘉宾邀请、出版衔接环环相扣,任何一环出问题都可能引发连锁反应。因此,选策划公司不能只看报价,关键看它有没有真正的学术会议承办经验、是…

作者头像 李华
网站建设 2026/10/27 1:54:51

PS引脚不够用?安路DR1M90通过PS_PLIO轻松扩展!

在FPSoC开发中,PS端(ARM端)的引脚数量往往是有限的。当项目需要连接大量外设时,该如何突破物理引脚的限制,实现灵活的系统设计?安路科技DR1M90 FPSoC提供的PS_PLIO技术,正是解决这一难题的利器。…

作者头像 李华
网站建设 2026/10/27 1:54:42

AI Agent产品选型指南:从技术原理到实践应用

1. AI Agent技术浪潮下的产品选型困境去年我在为一家金融科技公司设计智能客服系统时,面对市场上二十余种标榜"大模型赋能"的Agent产品,整整花了三周时间做技术验证。这期间踩过的坑让我深刻意识到:选择适合的AI Agent产品&#xf…

作者头像 李华