Python 进阶(六):文件读写(I/O)

在这里插入图片描述

❤️ 博客主页:水滴技术
🌸 订阅专栏:Python 入门核心技术
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬

文章目录

  • 1. 打开文件
  • 2. 读取文件
    • 2.1 逐行读取文件
    • 2.2 读取所有行
  • 3. 写入文件
    • 3.1 向文件中写入多行
  • 4. 关闭文件
  • 5. 文件操作的异常处理
  • 6. 总结
  • 系列文章
  • 热门专栏


大家好,我是水滴~~

Python 是一种高级编程语言,其强大的文件读写功能使得它成为了许多开发者的首选语言。在 Python 中,可以使用内置的 open() 函数来打开文件,并使用不同的读写模式来读取或写入文件内容。下面将详细介绍 Python 文件读写的基本操作和常见用法。

1. 打开文件

在 Python 中,使用 open() 函数打开文件。open() 函数的第一个参数是文件名,第二个参数是打开模式。打开模式有多种,常见的有以下几种:

  • ‘r’:只读模式(默认值)。
  • ‘w’:写入模式,如果文件不存在,则创建文件;如果文件已经存在,则覆盖原文件。
  • ‘a’:追加模式,如果文件不存在,则创建文件;如果文件已经存在,则在文件末尾添加新的内容。
  • ‘x’:创建模式,创建新文件并写入内容,如果文件已经存在,则抛出异常。
  • ‘b’:二进制模式,用于读取和写入二进制数据。
  • ‘t’:文本模式(默认值),用于读取和写入字符串数据。

例如,以下代码打开一个名为 ‘myfile.txt’ 的文件,以只读模式:

f = open('myfile.txt', 'r')

2. 读取文件

在打开文件后,可以使用文件对象的 read() 方法来读取文件内容。例如,以下代码读取打开的文件的全部内容:

f = open('myfile.txt', 'r')
content = f.read()
print(content)
f.close()

read() 方法返回文件的全部内容,如果文件较大,可能会占用大量内存。为了避免这种情况,可以使用 readline()readlines() 等方法来逐行读取文件内容,或使用 with 语句来自动关闭文件对象。

2.1 逐行读取文件

逐行读取文件可以使用 readline() 方法,该方法每次读取一行内容,并返回一个字符串。例如:

f = open('myfile.txt', 'r')
line1 = f.readline()
print(line1)
line2 = f.readline()
print(line2)
f.close()

2.2 读取所有行

readlines() 方法可以读取所有行,并返回一个字符串列表。例如:

f = open('myfile.txt', 'r')
lines = f.readlines()
print(lines)
f.close()

3. 写入文件

在打开文件后,可以使用文件对象的 write() 方法来写入文件内容。例如,以下代码向打开的文件写入一行文本:

f = open('myfile.txt', 'w')
f.write('Hello, World!')
f.close()

write() 方法将指定的字符串写入文件,并返回写入的字符数。如果文件不存在,则创建文件;如果文件已经存在,则覆盖原文件。

3.1 向文件中写入多行

多行文本可以写入到文件中,可以使用 write() 方法,也可以使用 writelines() 方法。例如:

f = open('myfile.txt', 'w')
lines = ['Line 1\n', 'Line 2\n', 'Line 3\n']
f.writelines(lines)
f.close()

4. 关闭文件

在完成文件读写操作后,必须关闭文件。可以使用文件对象的 close() 方法来关闭文件。例如:

f = open('myfile.txt', 'r')
content = f.read()
f.close()

如果忘记关闭文件,可能会导致内存泄漏或其他问题。为了避免这种情况,可以使用 with 语句来自动关闭文件对象。例如:

with open('myfile.txt', 'r') as f:
    content = f.read()

使用 with 语句打开文件后,文件对象会在 with 语句块结束时自动关闭。

5. 文件操作的异常处理

在 Python 文件读写操作中,可能会遇到一些错误,例如文件不存在、文件权限不足等。为了处理这些异常,可以使用 try...except 语句来捕获异常。例如:

try:
    f = open('myfile.txt', 'r')
    content = f.read()
except FileNotFoundError:
    print('文件不存在')
finally:
    f.close()

在上面的代码中,如果文件不存在,则会捕获 FileNotFoundError 异常,打印出提示信息。无论是否发生异常,都会执行 finally 语句块,关闭文件。

6. 总结

Python 文件读写是 Python 程序中常用的操作之一。在 Python 中,使用 open() 函数打开文件,并使用不同的读写模式来读取或写入文件内容。打开文件后,可以使用文件对象的方法来读取或写入文件内容。在完成文件读写操作后,必须关闭文件。使用 with 语句可以更方便地管理文件对象的生命周期。在实际应用中,可能需要考虑文件大小、文件编码、文件格式等因素,以选择合适的文件读写方案。同时,在文件操作中,需要注意异常处理,以确保程序的稳定性和安全性。


系列文章

🔥 Python 进阶(一):PyCharm 下载、安装和使用
🔥 Python 进阶(二):操作字符串的常用方法
🔥 Python 进阶(三):正则表达式(re 模块)
🔥 Python 进阶(四):日期和时间(time、datetime、calendar 模块)
🔥 Python 进阶(五):os 模块

热门专栏

👍 《Python入门核心技术》
👍 《IDEA 教程:从入门到精通》
👍 《Java 教程:从入门到精通》
👍 《MySQL 教程:从入门到精通》
👍 《大数据核心技术从入门到精通》

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

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

相关文章

开放麒麟1.0发布一个月后,到底怎么样?另一款操作系统引发热议

具有里程碑意义 7月5日,国产首个开源桌面操作系统“开放麒麟1.0”正式发布。 标志着我国拥有了操作系统组件自主选型、操作系统独立构建的能力,填补了我国在这一领域的空白。 举国欢庆,算的上是里程碑意义了! 发布后用着如何&a…

回归预测 | MATLAB实现WOA-ELM鲸鱼算法优化极限学习机多输入单输出回归预测

回归预测 | MATLAB实现WOA-ELM鲸鱼算法优化极限学习机多输入单输出回归预测 目录 回归预测 | MATLAB实现WOA-ELM鲸鱼算法优化极限学习机多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现WOA-ELM鲸鱼算法优化极限学习机多输入回归预测&#…

2.获取DOM元素

获取DOM元素就是利用JS选择页面中的标签元素 2.1 根据CSS选择器来获取DOM元素(重点) 2.1.1选择匹配的第一个元素 语法: document.querySelector( css选择器 )参数: 包含一个或多个有效的CSS选择器 字符串 返回值: CSS选择器匹配的第一个元素,一个HTMLElement对象…

分享一个赛车动画

先看效果&#xff08;动画太大了放不上来&#xff0c;甘心去复制代码运行即可&#xff09;&#xff1a; 再看代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>赛车</title><…

一些网络知识总结(自用)

一些网络知识总结&#xff08;自用&#xff09; 1. 进制的转换 所有进制转换成十进制就是把字面值*权数 比如16进制 5AEF 转成10机制话就是 1* 151614321064 * 5 2. ip地址网段的概念&#xff0c;可用ip&#xff0c;广播地址 比如一个ip为10.1.1.1/24那么他的网络号就是前…

vue表单筛选

目录 筛选 HTML scss* filterComp 排序 表格 自定义数据样式 inner-table 分页 删除 default-modal 自定义元素的插槽-占位符 .search-wrap {height: 60px;display: flex;align-items: center;overflow: hidden;padding: 0 20px;.selected-options-wrap {flex: 1;.…

绝对定位的遮挡

<ul class"slide-nav leftfix"><li><!-- 一级菜单 --><a href"#">手机/运营商/数码</a><!-- 二级菜单 --><div class"second-menu"></div></li><li><a href"#">电…

TCP三次握手和四次挥手以及11种状态(二)

11种状态 1、一开始&#xff0c;建立连接之前服务器和客户端的状态都为CLOSED&#xff1b; 2、服务器创建socket后开始监听&#xff0c;变为LISTEN状态&#xff1b; 3、客户端请求建立连接&#xff0c;向服务器发送SYN报文&#xff0c;客户端的状态变味SYN_SENT&#xff1b; 4、…

操作系统_进程与线程(四)

目录 4. 死锁 4.1 死锁的概念 4.1.1 死锁的定义 4.1.2 死锁产生的原因 4.1.3 死锁的处理策略 4.2 死锁预防 4.3 死锁避免 4.3.1 系统安全状态 4.3.2 银行家算法 4.3.2.1 数据结构描述 4.3.2.2 银行家算法描述 4.3.2.3 安全性算法 4.3.3 安全性算法举例 4.3.4 银行…

【网络】应用层——HTTP协议

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; &#x1f3c0;认识HTTP协议 上篇文章中&#xff0c;本喵带着大家对HTTP有了一个初步的认识&#xff0…

大家做性能测试都用什么工具

在进行测试时&#xff0c;选择适合的测试工具至关重要&#xff0c;因为优秀的测试工具能够显著提高工作效率。对于性能测试和自动化测试而言&#xff0c;大多数人会选择传统的JMeter等工具&#xff0c;然而这些工具存在学习成本高、使用门槛高的问题。 因此&#xff0c;我在这…

Mr. Cappuccino的第52杯咖啡——Mybatis环境搭建与使用

Mybatis环境搭建与使用 Mybatis介绍Mybatis环境搭建与使用基于XML方式-原生方式开发创建数据库表项目准备项目结构项目代码实体类中添加有参构造方法产生的问题 基于XML方式-mapper代理开发项目准备项目结构项目代码SQL映射文件中namespace未设置为接口全限定名产生的问题 基于…

IO进程线程day3(2023.7.31)

一、Xmind整理&#xff1a; 文件描述符概念&#xff1a; 二、课上练习&#xff1a; 练习1&#xff1a;用fread和fwrite实现文件拷贝 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <head.h> int main(int argc, const char…

Chapter 9: Lists | Python for Everybody 讲义笔记_En

文章目录 Python for Everybody课程简介ListsA list is a sequenceLists are mutableTraversing a listList operationsList slicesList methodsDeleting elementsLists and functionsLists and stringsParsing linesObjects and valuesAliasingList argumentsDebuggingGlossar…

Windows10系统还原操作

哈喽&#xff0c;大家好&#xff0c;我是雷工&#xff01; 复制了下虚拟机的Win10系统&#xff0c;但其中有一些软件&#xff0c;想实现类似手机的格式化出厂操作&#xff0c;下面记录Windows10系统的还原操作。 一、系统环境&#xff1a; 虚拟机内的Windows10&#xff0c;64…

R730服务器用光盘安装系统(Esxi系统)

准备阶段&#xff1a;dell R730服务器&#xff0c;本教程一般适用于dell所有服务器&#xff0c;移动光盘&#xff0c;光碟做好镜像系统。在这里我安装的系统是Esxi系统&#xff0c;其他操作系统类似&#xff0c;只是安装的步骤不一样而已。 1、将系统盘插入光驱(移动光盘)&…

测试|自动化测试(了解)

测试|自动化测试&#xff08;了解&#xff09; 1.什么是自动化测试☆☆☆☆ 自动化测试相当于把人工测试手段进行转换&#xff0c;让代码执行。 2.自动化测试的分类☆☆☆☆ 注&#xff1a;这里只是常见的自动化测试&#xff0c;并不全部罗列。 1.单元自动化测试 其中Java…

3分钟学会设计模式 -- 单例模式

►单例模式 ►使用场景 在编写软件时&#xff0c;对于某些类来说&#xff0c;只有一个实例很重要。例如&#xff0c;一个系统中可以存在多个打印任务&#xff0c;但是只能有一个正在工作的任务&#xff1b;一个系统中可以多次查询数据库&#xff0c;但是只需要一个连接&#x…

Rust vs Go:常用语法对比(九)

题图来自 Golang vs Rust - The Race to Better and Ultimate Programming Language 161. Multiply all the elements of a list Multiply all the elements of the list elements by a constant c 将list中的每个元素都乘以一个数 package mainimport ( "fmt")func …

4通道高速数据采集卡推荐哪些呢

FMC141是一款基于VITA57.4标准的4通道2.8GSPS/2.5GSPS/1.6GSPS采样率16位DA播放FMC子卡&#xff0c;该板卡为FMC标准&#xff0c;符合VITA57.4与VITA57.1规范&#xff0c;16通道的JESD204B接口通过FMC连接器连接至FPGA的高速串行端口。 该板卡采用TI公司的DAC39J84芯片&#x…