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

news2024/11/18 23:30:32

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.coloradmin.cn/o/962336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【一对一学习小组】2023年有三AI-CV高阶-项目实战组发布,超过30个案例,60小时项目实战+2大基础方向专栏+3本书赠送...

2023年有三AI-CV高阶-项目实战组正式发布!有三AI已经推出了CV初-中-高级培养计划(原名有三AI-CV季划),这是我们的终身计算机视觉学习小组。 该培养计划具有以下特点: 【系统性】配套有非常完备的理论与实践 【永久性】…

stable diffusion实践操作-SD原理

本文专门开一节写提示词相关的内容,在看之前,可以同步关注: stable diffusion实践操作 正文 1、出图原理 1.1 AI画画不是和人一样,从0开始,而是一个去噪点的过程: 1.2 逆向去噪 所有的人图片都是从一张噪…

大型商城系统功能逻辑架构_各大系统关系设计_OctShop

一个商城系统应该具备什么样的功能才算一个合格的网上商城呢,才能满意用户的下单支付,退款退货,售后等需求呢! 商城一般分为三种角色:买家,商家,平台,这三种角色都有各自的功能特点。…

记录--前端使用a链接下载内容增加loading效果

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 问题描述:最近工作中出现一个需求,纯前端下载 Excel 数据,并且有的下载内容很多,这时需要给下载增加一个 loading 效果。 代码如下: // util…

2023_Spark_实验六:Scala面向对象部分演示(二)(IDEA开发)

7、Scala中的apply方法() 遇到如下形式的表达式时,apply方法就会被调用: Object(参数1,参数2,......,参数N) 通常,这样一个apply方法返回的是伴生类的对象;其作用是为了省略new关键字 Object的apply方法…

我开课了!《机器学习》公益课9月4日开课

我是黄海广,大学老师,我上的一门课叫《机器学习》,本科生学机器学习有点难,但也不是没有可能,我在摸索中,设计适合本科生的机器学习课程,写了教材,录了视频,做了课件。我…

如何使用SQL系列 之 了解SQL中的约束规则

简介 在设计数据库时,有时可能需要对某些列中允许的数据设置限制。例如,如果你要创建一张表来保存摩天大楼的信息,你可能希望在保存每座大楼高度的列中禁止使用负值。 关系型数据库管理系统(RDBMS)允许你使用约束来控制哪些数据被添加到表中…

PID 算法

1.1 概述 比例(Proportion)积分(Integral)微分(Differential)控制器(PID控制器或三项控制器)是一种采用反馈的控制回路机制,广泛应用于工业控制系统和需要连续调制控制的…

ArrayList(扩容机制)

文章目录 一、前言二、ArrayList扩容机制1、适用于什么场景?2、ArrayList特点3、ArrayList扩容机制3.1、内存分配的效率:3.2、数据迁移的代价3.3、性能和空间的平衡 三、总结 一、前言 对于ArrayList集合可能大家并不陌生,但ArrayList集合的…

Camera | 12.瑞芯微摄像头自动焦距马达驱动移植

本为你主要讲解如何让摄像头ov13850支持自动对焦功能。 摄像头的对角主要通过VCM马达驱动芯片DW9714来实现的。 一、环境 soc : rk3568 board: EVB1-DDR4-V10 软 件:Android 11 Linux:4.19.232 Camera:ov13850二、DW9714 1.DW9714简介 DW9714专…

企业知识管理的解决方案

人们发现,挖掘知识、创造知识、生产知识,用知识为自己的产品赋予高附加值,才是企业和社会可持续发展的动力之源。所以知识管理越来越受到重视。 知识管理作为一个新兴的管理概念,已经被学术界所接受,但尚未形成一个…

网站用户体验之深度感悟

个性化定制界面和极简版原装界面,哪一个你用起来更加顺手呢,相比之下你更喜欢哪一个? 界面选择: (提醒:仅个人感悟。~~) 方向一:表明自己的喜好 我个人觉得更喜欢个性化定制界面。…

虚拟机有代理备份、无代理备份是什么?

有代理备份: 在虚拟机内部安装备份代理程序,然后把虚拟机当作物理机一样来进行备份任务。借助虚拟机系统中内置的程序来进行备份的,就像在正常系统中备份那样,借助备份和还原(Windows7)功能对系统进行备份…

知识图谱笔记:TransE

1 知识图谱介绍 一条知识图谱可以表示为一个三元组(sub,rel,obj)。 举个例子:小明的爸爸是大明,表示成三元组是(小明,爸爸,大明)。前者是主体,中间是关系,后者是客体。主体和客体统…

layui引入百度地图

<script type"text/javascript" src"//api.map.baidu.com/api?typewebgl&v1.0&ak你的ak"></script> <script src"https://code.bdstatic.com/npm/jquery1.12.4/dist/jquery.min.js"></script> <script src&…

科技驱动产业升级:浅谈制造型企业对MES系统的应用

在科技不断进步的背景下&#xff0c;制造型行业也在持续发展&#xff0c;但随之而来的挑战也不断增加。传统的管理方式已经无法满足企业的需求&#xff0c;因此许多制造型企业开始寻找新的管理模式。制造执行系统&#xff08;MES&#xff09;作为先进的制造信息技术之一&#x…

【微信小程序】父子组件的创建、通信与事件触发;组件生命周期

前言 关于微信小程序中父子组件的创建、传值&#xff0c;以及涉及到的组件生命周期。 使用组件的优点 组件的使用可以提高开发效率并确保功能在各个页面上的应用和修改的一致性。 例如&#xff0c;对于一些重复的功能&#xff0c;比如顶部导航栏或评论区&#xff0c;将其提炼…

MongoDB基础知识点

MongoDB基础知识点 1.MongoDB简介1.1基本信息1.2作用1.3下载 2.MongoDB安装1.Ubuntu22.042.Windows(非msi) 3.MongoDB基本操作1.基本概念2.MongoDB文件增删改查(CURD)1.插入数据2.查询数据3.修改数据4.删除数据5.删除字段 4.MongoDB实战管理系统数据库设计1.设计数据库2.Mongod…

c++ folly::baton

Baton folly::Baton 是 Facebook 开源的一个同步原语&#xff0c;它提供了一种简单而灵活的方式来进行线程间的同步。它属于 Folly 库&#xff0c;是 C 编程语言的一个组件。 Baton 通常用作线程间同步、等待、通知的标识符号&#xff0c;常用姿势是&#xff0c;一些线程调用…

正中优配:红筹股是啥意思?

随着我国经济的高速开展&#xff0c;越来越多的人开始参加到股票出资中。其中&#xff0c;红筹股作为一种特别类型的股票&#xff0c;备受一些出资者的关注&#xff0c;但对于一般出资者来说&#xff0c;红筹股详细含义还不是特别清楚。本文将从多个角度探讨红筹股的含义、特征…