文件操作在 Python 中的基本用法

news2024/11/18 14:29:59

更多资料获取

📚 个人网站:ipengtao.com


文件操作是任何编程语言中都至关重要的一部分,Python 提供了简单而强大的文件操作功能,使得读取、写入和处理文件变得非常便捷。本文将详细介绍 Python 中文件操作的基本用法,包括文件的打开、读写、关闭等操作,以及不同模式下的文件处理方式。同时,提供了丰富的示例代码来说明这些操作的实际应用。

文件的打开与关闭

在 Python 中,使用 open() 函数来打开文件。open() 函数接受文件名和打开模式作为参数,并返回一个文件对象,可用于读取或写入文件。打开文件后,务必在完成操作后关闭文件以释放资源,使用 close() 方法来实现。

示例代码:

# 打开文件
file = open('example.txt', 'r')  # 以只读模式打开文件
# 进行文件操作...
# 关闭文件
file.close()

文件的读取操作

Python 提供了多种方法来读取文件内容,包括读取整个文件、逐行读取和按需读取。

1. 读取整个文件内容

使用 read() 方法可以一次性读取整个文件的内容。这对于文件较小的情况较为方便,但对于大文件可能会消耗大量内存。

file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

2. 逐行读取文件

使用 readline() 方法可以逐行读取文件内容。这对于大文件而言更为高效,不会一次性将整个文件内容加载到内存中。

file = open('example.txt', 'r')
line = file.readline()
while line:
    print(line)
    line = file.readline()
file.close()

3. 按需读取文件

使用 read(size) 方法可以按需指定读取文件的字节数。这对于大文件的部分读取非常有用。

file = open('example.txt', 'r')
chunk = file.read(20)  # 读取前 20 个字符
print(chunk)
file.close()

文件的写入操作

除了读取,Python 也提供了写入文件的功能,允许创建、编辑和更新文件内容。

1. 写入文件

使用 write() 方法可以向文件中写入内容,如果文件不存在则会被创建。需要注意的是,以写入模式打开文件会清空文件内容,如果想要追加内容可以使用追加模式 'a'

file = open('new_file.txt', 'w')
file.write('Hello, this is a new file!')
file.close()

2. 追加内容到文件

使用追加模式 'a' 打开文件,可以在文件末尾追加新内容,而不会清空原有内容。

file = open('new_file.txt', 'a')
file.write('\nAppending new content to the file.')
file.close()

不同打开模式的用途

open() 函数中,可以指定不同的模式来打开文件,每种模式都有特定的用途。

  • 'r':只读模式,用于读取文件内容,文件必须存在。
  • 'w':写入模式,用于写入内容到文件,会清空文件内容,如果文件不存在则创建文件。
  • 'a':追加模式,用于在文件末尾追加内容,如果文件不存在则创建文件。
  • 'r+':读写模式,可以读取和写入文件,文件必须存在。
  • 'b':二进制模式,用于处理二进制文件,例如图片或视频文件。
# 以读写模式打开文件
file = open('example.txt', 'r+')
# 进行读取和写入操作...
file.close()

上下文管理器(Context Manager)

Python 中的 with 语句提供了上下文管理器,用于自动管理资源的分配和释放,更安全、更简洁地处理文件操作。

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)
# 文件会在 with 代码块结束后自动关闭,无需手动调用 file.close()

异常处理

在文件操作中,可能会出现各种异常,例如文件不存在、权限问题等。使用异常处理能够更好地应对这些问题。

try:
    file = open('nonexistent_file.txt', 'r')
    content = file.read()
    file.close()
except FileNotFoundError:
    print("File not found.")
except PermissionError:
    print("Permission denied to open the file.")
finally:
    file.close()

总结

Python 中的文件操作是编程中不可或缺的一部分。通过 open() 函数,可以以不同模式打开文件,进行读取和写入操作。对于读取,read() 方法能读取整个文件或者逐行读取,而 readline() 方法则逐行处理大文件更有效。写入文件可使用 write() 方法,以及追加模式 'a'。各种打开模式包括只读、写入、追加、读写以及处理二进制文件。上下文管理器 with 语句可简化文件操作,自动管理资源释放。异常处理在文件操作中也很重要,能应对文件不存在、权限问题等异常情况。

掌握文件操作的基本用法对于处理数据、配置文件等至关重要。 Python 提供了灵活而强大的文件处理功能,对于编写各种应用程序和处理数据十分重要。


Python学习路线

在这里插入图片描述

更多资料获取

📚 个人网站:ipengtao.com

如果还想要领取更多更丰富的资料,可以点击文章下方名片,回复【优质资料】,即可获取 全方位学习资料包。

在这里插入图片描述
点击文章下方链接卡片,回复【优质资料】,可直接领取资料大礼包。

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

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

相关文章

SpringBoot使用动态Banner

SpringBoot使用动态Banner Spring Boot 2.0 提供了很多新特性&#xff0c;其中就有动态 Banner。 1、pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://w…

sizeof 和 strlen的对比及笔试题目

目录 题目1&#xff1a; 题目2&#xff1a; 题目3&#xff1a; 题目4&#xff1a; 题目5&#xff1a; 题目6&#xff1a; 二维数组题&#xff08;重点&#xff09;&#xff1a; 上述题目总结&#xff1a; 若想了解其他的字符函数和字符串函数请移步&#xff1a;深入理解…

Gin投票系统(2)

投票系统 数据库的建立 先分析需求&#xff0c;在sql中建立数据库&#xff0c;关于项目数据库如何建立可以在“goweb项目创建流程分析中看如何去建表” 成功后目前有四个表&#xff1a; vote&#xff0c;user&#xff0c;vote_opt,vote_opt_user 建立数据库&#xff0c;可以…

万字解析设计模式之迭代器模式、备忘录模式

一、迭代器模式 1.1概述 迭代器模式是一种行为型设计模式&#xff0c;它允许在没有暴露其底层表现形式的情况下遍历集合对象。迭代器模式提供一种通用的遍历机制&#xff0c;可以遍历任何类型的集合&#xff0c;包括数组、列表、树等。通过这种模式&#xff0c;可以实现一种通…

微信小程序 老年人心血管健康知识科普系统

本系统的功能有管理员&#xff1a;个人中心&#xff0c;用户管理&#xff0c;热点信息管理&#xff0c;疾病管理&#xff0c;疾病类型管理&#xff0c;治疗管理&#xff0c;治疗类型管理&#xff0c;护理管理&#xff0c;护理类型管理&#xff0c;科普管理&#xff0c;科普类型…

Microsoft Office Exce-筛选后的公式批量复制粘贴为值 并且不乱数据

Microsoft Office Exce-利用选择性粘贴将筛选后的公式结果批量转换为值 1、写好【客单价】公式&#xff0c;并下拉填充 &#xff08;【SKU】、【销售额】、【销售量】这三列都是常量&#xff0c;非公式&#xff09; 2、复制客单价公式到E列 3、筛选数据&#xff0c; 按 Delet…

成员内部类(内部类) - Java

成员内部类 说明&#xff1a;成员内部类是定义在外部类的成员位置&#xff0c;并且没有static修饰。 可以直接访问外部类的所有成员&#xff0c;包含私有的。【案例a】可以添加任意访问修饰符&#xff08;public、protected、默认、private&#xff09;&#xff0c;因为它的地…

数组中的第 K 个最大元素(C++实现)

数组中的第 K 个最大元素 题目思路代码 题目 数组中的第 K 个最大元素 思路 通过使用优先队列&#xff08;最大堆&#xff09;来找到数组中第k大的元素。通过弹出最大堆中的前k-1个元素&#xff0c;留下堆中的顶部元素作为结果返回。 代码 class Solution { public:int find…

某东大厂面试js手写题【手写代码附带注释,放心食用,博主亲测】

文章目录 前言js实现push方法js实现订阅发布手写防抖节流手写reduce方法深拷贝es5去重数组多维数组去重排序简单递归实现树形结构输出遍历后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;前端面试 &#x1f431;‍&#x1f453;博主在前…

摄影网站的技术 SEO:提示和最佳实践

摄影就是要给人留下良好的第一印象。如果你想在竞争中领先&#xff0c;摄影师的SEO是您可以采用的最佳营销方法之一。 我们都曾有过这样的经历&#xff1a;你建立了一个漂亮的作品集网站来吸引更多的业务。网站上线并在社交媒体上推广后&#xff0c;您就可以坐等了。网站访问量…

线程池在Java中的应用实践

摘要&#xff1a;在实际业务场景中&#xff0c;线程池发挥着重要作用。本文将详细解答在高并发、任务执行时间短、并发不高、任务执行时间长以及并发高、业务执行时间长的业务场景下&#xff0c;如何使用线程池进行优化。 一、高并发、任务执行时间短的业务场景 在高并发、任务…

python服装电商系统vue购物商城django-pycharm毕业设计项目推荐

系统面向的使用群体为商家和消费者&#xff0c;商家和消费者所承担的功能各不相同&#xff0c;所对象的权限也各不相同。对于消费者和商家设计的功能如下&#xff1a; 对于消费者设计了五大功能模块&#xff1a; &#xff08;1&#xff09; 商品信息&#xff1a;用户可在商品…

【黑马甄选离线数仓day06_核销主题域开发】

1. 核销主题_DWD和DWM层 1.0 ODS层 操作数据存储层: Operate Data Store 核心理念: 几乎和源数据保持一致,粒度相同 注意事项: 同步方式(全量同步,全量覆盖,增量仅新增,增量新增和更新) 内部表 分区表(部分) 指定字符分隔符 orc zlib 第二天的时候已经完成了从mysql以及sq…

蓝蜂虚拟网络工具配置说明

虚拟网络工具配置说明 注意&#xff1a; 1、在使用虚拟网络工具前&#xff0c;需保证EG20网关可以连接到EMCP云平台&#xff0c;并且设备已经绑定在对应的账号下&#xff0c;同时固件版本为v1.6.6以上。如果不是&#xff0c;点击固件版本处的更新&#xff0c;如下图所示。 2…

GitHub----使用记录

一、上传文件到仓库 1、首先新建一个github仓库 然后先记住这一句指令 2、下载git工具 https://git-scm.com/downloads 下载工具安装不用运行 3、使用git工具上传文件并推送 找到你想上传的文件的位置&#xff0c;右击git Bush here git init &#xff1a;初始化这个仓…

【Python 训练营】N_11 模拟进度条

题目 格式化输出进度条&#xff0c;具体格式如下&#xff1a; 分析 需要格式化打印&#xff0c;进度条随时间显示进展&#xff0c;需要用time模块的sleep()函数。 答案 import time # 导入time模块 length 100 # 定义进度长度模块 for i in range(1,length1): # 遍历1&…

Corel产品注册机Corel Products KeyGen 2023 – XFORCE解决会声会影2023试用30天

CorelDRAW注册机2023支持全系列产品_Corel Products KeyGen 2023 X-FORCE v8 CorelDRAW注册机2023支持全系列产品_Corel Products KeyGen 2023 X-FORCE v8&#xff0c;Corel产品注册机&#xff08;Corel Products KeyGen 2023 – XFORCE&#xff09;&#xff0c;支持Corel旗下所…

TDL CDL信道模型

文章目录 一 TDL二 CDL三 CDL TDL区别 TDL&#xff1a;(Tapped Delay Line&#xff0c;抽头延迟线) CDL&#xff1a;(Clustered Delay Line&#xff0c;集群延迟线) 一 TDL 定义&#xff1a;由一组不同衰落系数和不同时延的抽头组成。全频率范围为&#xff1a;0.5GHz~100GHz&am…

【刷题笔记】分糖果||数组||暴力通过||符合思维方式||多案例分析

分发糖果 文章目录 分发糖果1 题目描述2 题目分析2.1 寻找波峰波谷2.2 从波底往波峰攀爬&#xff01;2.2 计算糖果 3 代码附录1 1 题目描述 https://leetcode.cn/problems/candy/ n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求&…

怎么判断香港服务器的性能好不好?

随着互联网的不断发展&#xff0c;越来越多的人开始使用香港服务器来搭建自己的网站或者应用。但是&#xff0c;对于初次使用香港服务器的用户来说&#xff0c;往往会遇到一个问题&#xff1a;怎么判断香港服务器的性能好不好? 首先我们需要了解香港服务器的性能主要取决于哪些…