Python操作文件的读取和写入,详解和案例介绍

Python文件IO操作是Python编程中非常重要的一部分,可以通过文件IO操作来读取和写入文件。文件IO操作提供了一种在程序中处理文件的方法,可以读取文件中的数据,也可以将数据写入到文件中。在本文中,我们将介绍Python中文件IO操作的基本知识和常用方法。

一、文件的打开和关闭

在进行文件IO操作之前,首先需要打开文件。文件的打开可以使用内置的open函数,该函数接受两个参数:文件路径和打开模式。文件路径是文件的路径和名称,可以是相对路径或绝对路径。打开模式是一个字符串,用于指定打开文件的方式。

打开模式有以下几种常见的方式:

  • “r”:只读模式,用于读取文件的内容。如果文件不存在,会抛出FileNotFoundError异常。

  • “w”:写入模式,用于写入文件的内容。如果文件不存在,会创建一个新的文件;如果文件已存在,会清空文件的内容。

  • “a”:追加模式,用于在文件末尾追加内容。如果文件不存在,会创建一个新的文件。

  • “x”:独占模式,用于创建一个新的文件。如果文件已存在,会抛出FileExistsError异常。

  • “b”:二进制模式,用于处理二进制文件,例如图片、音频和视频等。

  • “t”:文本模式,用于处理文本文件,例如文本文档和CSV文件等。

打开文件的语法如下:

file = open(file_path, mode)   

在文件IO操作完成后,需要关闭文件。关闭文件可以使用文件对象的close方法,该方法会释放文件资源,并将文件从内存中删除。

关闭文件的语法如下:

file.close()   

二、文件的读取

文件的读取是指从文件中读取数据。Python提供了多种方法用于读取文件,以下是常用的几种方法:

  1. read方法:用于一次性读取整个文件的内容,并将内容保存为一个字符串。read方法不接受任何参数。
content = file.read()   
  1. readline方法:用于逐行读取文件的内容,并返回一个字符串。每次调用readline方法,会读取文件中的下一行内容。
line = file.readline()   
  1. readlines方法:用于一次性读取整个文件的内容,并将内容保存为一个列表。列表的每个元素是文件中的一行内容。
lines = file.readlines()   

读取文件的示例代码如下:

file = open("test.txt", "r")   content = file.read()   print(content)   file.close()   

三、文件的写入

文件的写入是指将数据写入到文件中。Python提供了多种方法用于写入文件,以下是常用的几种方法:

  1. write方法:用于写入一个字符串到文件中。write方法接受一个字符串作为参数,并将字符串写入文件。如果文件不存在,会创建一个新的文件;如果文件已存在,会清空文件的内容。
file.write(content)   
  1. writelines方法:用于写入一个字符串列表到文件中。writelines方法接受一个字符串列表作为参数,并将列表中的每个字符串写入文件。如果文件不存在,会创建一个新的文件;如果文件已存在,会清空文件的内容。
file.writelines(lines)   

写入文件的示例代码如下:

file = open("test.txt", "w")   content = "Hello, World!"   file.write(content)   file.close()   

四、文件的追加

文件的追加是指将数据追加到文件的末尾。Python提供了追加模式来实现文件的追加操作。

追加模式的语法如下:

file = open(file_path, "a")   

在追加模式下,写入文件的数据会被追加到文件的末尾,不会清空文件的内容。

追加文件的示例代码如下:

file = open("test.txt", "a")   content = "Hello, World!"   file.write(content)   file.close()   

五、文件的异常处理

在进行文件IO操作时,可能会出现各种异常情况,例如文件不存在、文件权限不足等。为了避免程序崩溃,需要使用异常处理机制来捕获和处理异常。

在Python中,可以使用try-except语句来捕获和处理异常。try语句用于执行可能出现异常的代码块,except语句用于捕获和处理异常。

文件IO操作的异常处理示例代码如下:

try:       file = open("test.txt", "r")       content = file.read()       print(content)       file.close()   except FileNotFoundError:       print("文件不存在")   except PermissionError:       print("文件权限不足")   

六、文件的上下文管理器

在进行文件IO操作时,为了确保文件被正确关闭,可以使用上下文管理器来管理文件。上下文管理器可以确保在进入和离开代码块时,资源被正确分配和释放。

在Python中,可以使用with语句来创建上下文管理器。with语句会自动调用文件对象的__enter__方法进入代码块,并在代码块结束后调用文件对象的__exit__方法离开代码块。

使用上下文管理器的示例代码如下:

with open("test.txt", "r") as file:       content = file.read()       print(content)   

在上述示例代码中,文件对象在进入代码块时被创建,并在离开代码块时被关闭,无需手动调用文件对象的close方法。

七、总结

Python文件IO操作是Python编程中非常重要的一部分,可以通过文件IO操作来读取和写入文件。文件IO操作提供了一种在程序中处理文件的方法,可以读取文件中的数据,也可以将数据写入到文件中。在本文中,我们介绍了Python中文件IO操作的基本知识和常用方法,包括文件的打开和关闭、文件的读取、文件的写入、文件的追加、文件的异常处理和文件的上下文管理器。通过合理地使用文件IO操作,可以更加高效地处理文件,提高程序的可读性和可维护性。

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/99113.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

无涯教程-Android - RadioGroup函数

RadioGroup类用于单选按钮集。 如果我们选中属于某个单选按钮组的一个单选按钮,它将自动取消选中同一组中以前选中的任何单选按钮。 RadioGroup属性 以下是与RadioGroup控制相关的重要属性。您可以查看Android官方文档以获取属性的完整列表以及可以在运行时更改这些属性的相关…

python基础教程:re模块用法详解

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 一、正则表达式的特殊字符介绍 正则表达式 👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~ 素材、视频教程、完整代码、插件安装教程我都准备好了&a…

KingbaseDTS数据库迁移工具人大金仓国产数据库同步工具Java版本使用方法

KingbaseDTS数据库迁移工具人大金仓国产数据库同步工具Java版本使用方法 金仓数据库简介 人大金仓数据库管理系统 KingbaseES(KES) 是面向全行业、全客户关键应用的企业级大型通用数据库管理系统,适用于联机事务处理、查询密集型数据仓库、…

构建个人博客_Obsidian_github.io_hexo

1 初衷 很早就开始分享文档,以技术类的为主,一开始是 MSN,博客,随着平台的更替,后来又用了 CSDN,知乎,简书…… 再后来是 Obsidian,飞书,Notion,常常有以下困…

Unity实现倒计时和获取系统时间

一:创建UGUI 1.创建Canvas画布组件,调节Canvas画布的分辨率等其他设置。我们可以把视图设置为2D模式下。 2.创建Text文本组件,取名为Timer计时器,我们调整Text文本组件的大小,用锚点设置Text文本组件的位置,并且设置好Text文本组件的颜色。 3.我们再创建一个Text文…

技术实践|Hive数据迁移干货分享

导语 Hive是基于Hadoop构建的一套数据仓库分析系统,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能。它的优点是可以通过类SQL语句快速实现简单的MapReduce统计,不用再开发专门的MapReduce应用程序,从而降低…

简单聊聊Https的来龙去脉

简单聊聊Https的来龙去脉 Http 通信具有哪些风险Https Http SSL/TLS对称加密 和 非对称加密数字证书数字证书的申请数字证书怎么起作用 Https工作流程一定需要Https吗? Http 通信具有哪些风险 使用明文通信,通信内容可能会被监听不验证通信双方身份&a…

WebGL:开始学习 / 理解 WebGL / WebGL 需要掌握哪些知识 / 应用领域 / 前端值得学WebGL吗

一、WebGL发展史 2006 年,WebGL 的发展史可以追溯到 2006 年左右,当时 Mozilla Foundation 的一个开发人员 Vladimir Vukićević 开始尝试在 Firefox 浏览器中嵌入 OpenGL,为 JavaScript 提供底层图形库的支持。随后,这个项目引…

开启EMQX的SSL模式及SSL证书生成流程

生成证书 首先:需要安装Openssl 以下是openssl命令 生成CA证书 1.openssl genrsa -out rootCA.key 2048 2.openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3650 -subj "/CCN/STShandong/Ljinan/Oyunding/OUplatform/CNrootCA" -out ro…

js中?.、??、??=的用法及使用场景

上面这个错误,相信前端开发工程师应该经常遇到吧,要么是自己考虑不全造成的,要么是后端开发人员丢失数据或者传输错误数据类型造成的。因此对数据访问时的非空判断就变成了一件很繁琐且重要的事情,下面就介绍ES6一些新的语法来方便…

前端三大Css处理器之Less

Less是Css预处理器之一,分别有Sass、Less、Stylus这三个。 Lesshttps://lesscss.org/ Less是用JavaScript编写的,事实上,Less是一个JavaScript库,他通过混合、变量、嵌套和规则设置循环扩展了原生普通Css的功能。Less的少数…

【SpringBoot系列】 测试框架之@SpringBootTest的使用

SpringBootTest的详细介绍 SpringBootTest 是 Spring Boot 测试框架中的注解,用于标识一个测试类,以指示该类是一个 Spring Boot 应用程序的测试类。它允许你在测试环境中加载整个 Spring Boot 应用程序上下文,测试应用程序的各种组件、服务…

​放弃数据库,改用Kafka!

长期以来,数据库一直充当着记录系统,它们以可靠且持久的方式存储和管理关键数据,也赢得了大多数公司的信赖。 但时代在变。许多新兴趋势正在影响当今数据的存储和管理方式,不得不让一些技术决策者们重新考虑数据存储究竟还有哪些…

Docker Compose 安装使用 教程

Docker Compose 1.1 简介 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的 快速编排 。从功能上看,跟 OpenStack 中的 Heat 十分类似。 其代码目前在 https://github.com/docker/compose 上开源。 Compose 定位是 「定义和运行多个…

C# VS调试技巧

一.按照条件调试步骤 ①在需要代码执行的行打断点 ②触发此断点,让代码执行到此处 ③鼠标滑至在断点处,点击设置 ④设置断点条件,如下图所示 二、多线程调试技巧 ①在需要代码执行的行打断点 ②触发此断点,让代码执行到此处…

Sharding-JDBC分片策略

Sharding-JDBC分片策略 包含分片键和分片算法,由于分片算法的独立性,将其独立抽离。真正可用于分片操作的是分片键 分片算法,也就是分片策略。目前提供5种分片策略。 一个好的分片策略好的分片键好的的分片算法 1. 标准分片策略 对应Stan…

如何在访问一个页面时,将访问时刻的时间显示在页面上

1.如何在访问一个页面时,将访问时刻的时间显示在页面上 GetMapping("/append") public ModelAndView append() {ModelAndView mvnew ModelAndView("expense/append");String date LocalDate.now().toString();mv.addObject("date",d…

百度文心一言GPT免费入口也来了!!!

文心一言入口地址:文心一言能力全面开放 文心一言是百度全新一代知识增强大语言模型,文心大模型家族的新成员,能够与人对话互动,回答问题,协助创作,高效便捷地帮助人们获取信息、知识和灵感。 文心一言的技…

从钉钉到金蝶云星空通过接口配置打通数据

从钉钉到金蝶云星空通过接口配置打通数据 对接系统钉钉 钉钉(DingTalk)是阿里巴巴集团打造的企业级智能移动办公平台,是数字经济时代的企业组织协同办公和应用开发平台。钉钉将IM即时沟通、钉钉文档、钉闪会、钉盘、Teambition、OA审批、智能…