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

更多资料获取

📚 个人网站: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

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

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

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

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

相关文章

Python自动化测试学习路线【进阶必看】

软件自动化测试的学习步骤 大概步骤如下: 1. 做好手工测试(了解各种测试的知识)-> 2. 学习编程语言-> 3. 学习Web基础(HTML,HTTP,CSS,DOM,Javascript)或者 学习Winform -> 4. 学习自动化测试工具 ->5. …

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

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

python基于YOLOv7系列模型【yolov7-tiny/yolov7/yolov7x】开发构建钢铁产业产品智能自动化检测识别系统

在前文的项目开发实践中,我们已经以钢铁产业产品缺陷检测数据场景为基准,陆续开发构建了多款目标检测模型,感兴趣的话可以自行阅读即可。 《YOLOv3老矣尚能战否?基于YOLOv3开发构建建钢铁产业产品智能自动化检测识别系统&#xf…

高等数学零基础篇复习笔记

预备章 零基础高等数学入门知识 第一节 集合、运算与关系 第二节 三角函数与反三角函数 三角函数的公式 反三角函数 第三节 常见不等式及数列 划重点 第一章 函数、极限与连续 第一节 函数及函数的初等特性 特殊函数 反函数 函数的初等特性 ①有界性 ②奇偶性 偶函数图像…

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

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

ubuntu配置ssh

本教程中的涉及路径的所有命令都是在root用户下的,读者可将路径中的/root更改为/home/用户名 1、重置密码 新安装的系统需要在服务器控制台点击“重置密码”,为root用户设置一个密码 ————————————————————————————————…

C++ string类(二)

insert&#xff1a; erase&#xff1a; 常见用法&#xff1a; int main() {string s1("hello world");string s2("gm");s1.insert(5,"x");cout << s1 << endl;s1.insert(6,s1,0);cout << s1 << endl;s1.insert(0,&qu…

二叉树之推排序(升序)

目录 1.思路1.1大堆的建立方法1.2排序的方法 2.代码实现以及测试代码 1.思路 如何将一个堆进行排序&#xff0c;并变成升序&#xff1f;首先&#xff0c;如果要完成升序&#xff0c;那我们可以建立一个大堆&#xff0c;因为大堆可以选出一个最大的值放在堆的最上面&#xff0c…

云服务器上部署 Web 项目及端口异常处理

文章目录 1. 在云服务器的 MySQL(MariaDB) 中, 建库建表2. 微调代码3. 打包4. 把 war 包 拷贝到云服务器上端口被占用处理 1. 在云服务器的 MySQL(MariaDB) 中, 建库建表 在云服务器中进入 MySQL mysql -u root -p把之前本地写好的 SQL 代码一粘贴即可 例如: -- 这个文件主要…

oracle闪回恢复表数据

oracle闪回恢复表数据 1.打开监听和数据库&#xff0c;进入需要操作的表的所属用户下 [oraclemydb ~]$ lsnrctl start [oraclemydb ~]$ sqlplus / as sysdba SQL> startup SQL> conn test/123456 SQL> select * from test1&#xff1b;2.删除任意数据&#xff1a; …

「计算机网络」Cisco Packet Tracker计算机网络仿真器的使用

介绍 Cisco Packet Tracker&#xff1a;网络仿真工具&#xff0c;用于模拟网络配置。 &#xff08;一&#xff09;通过 带外管理 配置交换机&#xff08;Switch&#xff09; 带外&#xff1a;Out-of-Band, OOB写在前面&#xff1a;如何打开Console页面 1、模式转换 用户执行模…

如何用postman实现接口自动化测试

postman使用 开发中经常用postman来测试接口&#xff0c;一个简单的注册接口用postman测试&#xff1a; 接口正常工作只是最基本的要求&#xff0c;经常要评估接口性能&#xff0c;进行压力测试。 postman进行简单压力测试 下面是压测数据源&#xff0c;支持json和csv两个格…

Android开源框架--Dagger2详解

功名只向马上取&#xff0c;真是英雄一丈夫 一&#xff0c;定义 我们知道在一个类中&#xff0c;通常会定义其他类型的变量&#xff0c;这个变量就是我们所说的“依赖“。 对一个类的变量进行初始化&#xff0c;有两种方式。第一种&#xff0c;这个类自己进行初始化&#xff…

Elasticsearch底层原理分析——新建、索引文档

es版本 8.1.0 重要概念回顾 Elasticsearch Node的角色 与下文流程相关的角色介绍&#xff1a; Node Roles配置主要功能说明masternode.roles: [ master ]有资格参与选举成为master节点&#xff0c;从而进行集群范围的管理工作&#xff0c;如创建或删除索引、跟踪哪些节点是…

计算机毕业设计php+bootstrap小区物业管理系统

意义&#xff1a;随着我国经济的发展和人们生活水平的提高&#xff0c;住宅小区已经成为人们居住的主流&#xff0c;人们生活质量提高的同时&#xff0c;对小区物业管理的要求也越来越高&#xff0c;诸如对小区的维修维护&#xff0c;甚至对各项投诉都要求小区管理者做得好&…

Django请求生命周期流程

浏览器发起请求。 先经过网关接口&#xff0c;Django自带的是wsgiref&#xff0c;请求来的时候解析封装&#xff0c;响应走的时候打包处理&#xff0c;这个wsgiref模块本身能够支持的并发量很少&#xff0c;最多1000左右&#xff0c;上线之后会换成uwsgi&#xff0c;并且还会加…

Linux 项目自动化构建工具:make/makefile

什么是 make make 是一个命令&#xff0c;他会在源文件的当前目录下寻找 makefile 或者 Makefile 文件执行这个文件中的代码。 makefile 文件的编写 我们先来见见猪跑&#xff0c;看看 make 怎么用的&#xff1a; 下面是 makefile 文件的内容&#xff1a; 这是 test.c 中的…

Vue19 列表过滤

直接上代码 以下代码使用了两种实现方式&#xff0c;监视属性和计算属性 当能用计算属性实现时&#xff0c;推荐使用计算属性 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>列表过滤</title><script type&q…

python项目报错

解决办法&#xff1a;不要用配置的镜像脚本&#xff0c;直接用此命令 pip install pandas -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

C++类与对象(7)—友元、内部类、匿名对象、拷贝对象时编译器优化

目录 一、友元 1、定义 2、友元函数 3、友元类 二、内部类 1、定义 2、特性&#xff1a; 三、匿名对象 四、拷贝对象时的一些编译器优化 1、传值&传引用返回优化对比 2、匿名对象作为函数返回对象 3、接收返回值方式对比 总结&#xff1a; 一、友元 1、定义…