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学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[C/C++]天天酷跑超详细教程-中篇

个人主页:北海 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏✨收录专栏:C/C🤝希望作者的文章能对你有所帮助,有不足的地方请在评论区留言指正,大家一起学习交流!&#x1f9…

unity3d:功能验证,收集开源项目的工程合集

unity3d功能验证,和收集开源项目的工程合集 目录持续更新地址 【腾讯文档】UnityForTest目录 https://docs.qq.com/doc/DWm9HSkVhTGdyUUVo 源码 https://github.com/luoyikun/UnityForTest 动画 创建骨骼动画 BoneAnimation场景 代码创建Mesh,骨骼…

Hadoop依赖环境配置与安装部署

目录 什么是Hadoop?一、Hadoop依赖环境配置1.1 设置静态IP地址1.2 重启网络1.3 再克隆两台服务器1.4 修改主机名1.5 安装JDK1.6 配置环境变量1.7 关闭防火墙1.8 服务器之间互传资料1.9 做一个host印射1.10 免密传输 二、Hadoop安装部署2.1 解压hadoop的tar包2.2 切换…

【100天精通python】Day47:python网络编程_Web开发:web服务器,前端基础以及静态服务器

目录 1 网络编程与web编程 1.1 网络编程 1.2 web编程 1.3 前后端交互的基本原理 2 Web开发基础 2.1 HTTP协议 2.2 Web服务器 2.3 前端基础 2.3.1 HTML(超文本标记语言) 2. 3.2 CSS(层叠样式表) 2.3.3 JavaScript 2.…

Linux进程概念及其状态

文章目录 🍇1. 什么是进程🍈1.1 概念🍈1.2 理解进程 🍋2. Linux的PCB🍎3. 查看进程 & 杀死进程🍒4. 系统调用获取进程标识符🍓4.1 进程PID🍓4.2 父进程PPID 🍆5. 系统…

Vue框架--Vue中的数据绑定

Vue中有两种数据绑定的方式 1.单向数据绑定(v-band):数据只能够从data流向页面 2.双向数据绑定(v-model):数据不仅仅能够从data流向页面,也可以从页面流向data。 备注: 1.双向绑定一般都应用在表单类元素上。(如:input、select等有value属性值的标签上) 2.…

mybatis-plus关于@Mapper、@Repository、@MapperScan、xml文件的相关问题

1. Mapper和MapperScan必须二选一 两个都不加, 启动报错 所以要么在每个mapper接口上打上Mapper注解; 要么在配置类(或者启动类)上使用MapperScan(“xxx.xxx.mapper”) , 其参数就是你的mapper接口所在的包名.(推荐使用这种方式, 每个接口都写Mapper太麻烦了); 2. Repository…

Git和Github的基本用法

目录 背景 下载安装 安装 git for windows 安装 tortoise git 使用 Github 创建项目 注册账号 创建项目 下载项目到本地 Git 操作的三板斧 放入代码 三板斧第一招: git add 三板斧第二招: git commit 三板斧第三招: git push 小结 🎈个人主页&#xf…

Matlab怎么引入外部的latex包?Matlab怎么使用特殊字符?

Matlab怎么引入外部的latex包?Matlab怎么使用特殊字符? Matlab怎么使用特殊字符?一种是使用latex方式,Matlab支持基本的Latex字符【这里】,但一些字符需要依赖外部的包,例如“𝔼”,需…

【Linux】线程安全-生产者消费者模型

文章目录 生产者消费者模型123规则应用场景优点忙闲不均生产者和消费者解耦支持高并发 代码模拟 生产者消费者模型 123规则 1个线程安全的队列:只要保证先进先出特性的数据结构都可以称为队列 这个队列要保证互斥(就是保证当前只有一个线程对队列进行操…

IA-YOLO项目中DIP模块的初级解读

IA-YOLO项目源自论文Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions,其提出端到端方式联合学习CNN-PP和YOLOv3,这确保了CNN-PP可以学习适当的DIP,以弱监督的方式增强图像检测。IA-YOLO方法可以自适应地处理正常和不…

linux上vscode中.cpp文件中引入头文件.hpp时报错:找不到头文件(启用错误钵形曲线)

当在.cpp文件中引入系统给定的头文件时&#xff1a;#include < iostream > 或者引入自定义的头文件 &#xff1a;#include <success.hpp> 报错&#xff1a;找不到相应的头文件&#xff0c;即在引入头文件的改行底下标出红波浪线 解决方法为&#xff1a; &#…