当前位置: 首页 > news >正文

81. read readline readlines 读取文件的三种方法

81. read readline readlines 读取文件的三种方法

文章目录

  • 81. read readline readlines 读取文件的三种方法
    • 1. 读取文件的三种方法
    • 2. read方法
    • 3. readline方法
    • 4. readlines方法
    • 5. 代码总结
      • 5.1 read方法读取全部内容
      • 5.2 readline方法读取一行,返回字符串
      • 5.3 readlines方法读取一行,返回列表

1. 读取文件的三种方法

read[riːd]:读取。

line [laɪn]:线、行。

在这里插入图片描述

【备注】

上述图片来自【大熊课堂】,本文内容参考【大熊课堂】的读取文件的三种操作方法

2. read方法

【功能】

读取文件的全部内容。

【返回值】

返回的数据类型为字符串。

【准备工作】

  1. 新建一个名为81的文件夹。

  2. 81文件夹中新建一个八字文案.txt文件。

在81.txt文件中写入如下内容:

马行千里
不洗沙尘
十年饮冰
难凉热血

  1. 81文件夹中新建一个81.py文件。

  2. 用VScode编辑器打开81.py文件,在该文件中编写代码。

【文件相关知识回顾】

文件的操作通常分为3个步骤:

  1. 打开文件

  2. 操作文件

  3. 关闭文件

重点注意用Python操作文件后注意要记得关闭文件夹。

【体验代码:读取文本的全部内容】

# open函数打开文件
f = open("八字文案.txt","r", encoding='utf-8')# read方法读取文件
c = f.read()
print(c)# close函数关闭文件
f.close()

【终端输出】

马行千里
不洗沙尘
十年饮冰
难凉热血  

运行上面的代码,我们读取了八字文案.txt文件中的内容。

【open函数语法回顾】

open(file, mode='r', encoding='None', errors='None')
  1. 参数file表示要打开文件的路径

  2. 参数 encoding 表示文件的编码方式,文件编码方式一般为 ‘utf-8’。

  3. errors 参数表示读写文件时碰到错误的报错级别。

  4. 参数mode决定了打开文件的模式。

这里的r表示以只读模式打开文件。

【mode参数说明】

在这里插入图片描述

  1. 运行open函数返回的是一个文件对象

  2. open 语句需要使用close关闭文件。

  3. with open 语句不需要使用close关闭文件。

【上面的代码可以优化如下】

# with open 语句打开文件
with open("八字文案.txt","r", encoding='utf-8') as f:# 读取文件print(f.read())

【终端输出】

马行千里
不洗沙尘
十年饮冰
难凉热血  

【相关知识可参考以下链接】

69. open函数—打开文件并返回文件对象

70. with open( ) as 以自动关闭文件的方式打开文件

【体验代码:read读取部分内容】

当read方法的括号为空时,我们输出了txt文件的全部内容。

下面我们给read方法的括号中添加一个数值。

【read(1)】

with open("八字文案.txt","r", encoding='utf-8') as f:# 读取文件print(f.read(1))

【终端输出】

当添加数值1时,程序读取了txt文档的中的第一字符。

运行结果输出了第一个字符

【read(4)】

with open("八字文案.txt","r", encoding='utf-8') as f:# 读取文件print(f.read(4))

【终端输出】

马行千里

当添加数值4时,程序读取了txt文档的中的前4个字符。

运行结果输出了文档的前4个字符马行千里

【read(5)】

with open("八字文案.txt","r", encoding='utf-8') as f:# 读取文件print(f.read(5))

【终端输出】

马行千里

当添加数值5时,程序读取了txt文档的中的前5个字符。

但运行结果还是输出了文档的前4个字符马行千里

输入4和输入5的终端输出结果肉眼看是一样的,但其本质是不一样的。

在这里插入图片描述

输入4的时候,终端输出只有文本内容。

输入5的时候,终端输出除了文本内容,还有一个换行效果。

这是因为我在编写八字文案.txt文档时,在马行千里后面敲了一个回车。

由了回车我们肉眼看到的是换行效果。

而程序把这个换行效果识别成换行符\n

这个\n也是一个字符。

因此当程序运行到该字符时,才会输出一个换行效果。

【read(12)】

with open("八字文案.txt","r", encoding='utf-8') as f:# 读取文件print(f.read(12))

【终端输出】

马行千里
不洗沙尘
十年

3. readline方法

line[laɪn]:线,行。

line是行的意思。

【功能】

读取一行。

【返回值】

返回的数据类型是字符串。

【体验代码】

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')# 读取文件
c = f.readline()
print(c)  # 关闭文件
f.close()

【终端输出】

马行千里

运行上面的代码,程序输出了文档中第一行的内容。

【输出多行】

如果我们需要输出多行,就多次添加readline语句即可。

【输出2行】

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')
# 读取文件
c = f.readline()
print(c)  
c = f.readline()
print(c)  
# 关闭文件
f.close()

【终端输出】

马行千里不洗沙尘

【输出7行】

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')
# 读取文件
c = f.readline()
print(c)  
c = f.readline()
print(c)  
c = f.readline()
print(c) 
c = f.readline()
print(c) 
c = f.readline()
print(c) 
c = f.readline()
print(c) 
c = f.readline()
print(c) 
# 关闭文件
f.close()

【终端输出】

马行千里不洗沙尘十年饮冰难凉热血  

文档内容只有4行,当我写了7个readline语句后,后3个语句因此没有输出内容,程序会识别输出空行。

当我们在读取一个文件的时候,如果文件内容很多,这样一行一行的输出较为麻烦。

我们可以使用while循环来依次读取每行内容。

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')# 读取文件
c = f.readline()
while c !="":print(c)c = f.readline()
# 关闭文件
f.close()

【终端输出】

马行千里不洗沙尘十年饮冰难凉热血  

【代码解析】

while c !="":print(c)c = f.readline()
while c !=""

c是读取到的每行文件内容。

内容的类型为字符串。

当变量c的值不等于0的时候,输出c变量,即输出该行的字符串内容。

print(c)
c = f.readline()

然后继续读取下一行内容。

当变量c的值等于0的时候,while循环终止,程序继续往下走。

【消除换行符】

观察输出结果,发现每行输出后都有一行空行,很不美观。

这个换行是print函数的end参数控制的。

完整的代码应该是下面这样:

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')
# 读取文件
c = f.readline()
while c !="":print(c,end="\n")c = f.readline()
# 关闭文件
f.close()
end="\n"

print函数是有很多个参数的,且它的end参数默认值为end="\n"

因此,当我们不介意有换行的时候,通常不会修改这个参数,也不会写出这个参数,都是使用默认值。

那如果我们不需要欢喜,我们只需修改end参数的值即可。

这里我把end参数的值修改成一个空字符,输出的结果就没有换行效果了。

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')
# 读取文件
c = f.readline()
while c !="":print(c,end="")c = f.readline()
# 关闭文件
f.close()

【终端输出】

马行千里
不洗沙尘
十年饮冰
难凉热血  

【空字符效果】

end=""

【总结】

如果你想要换行效果,不用设置print函数的end参数。

如果你不想要换行效果,将print函数的end参数修改为end=""即可。

4. readlines方法

【功能】

读取一行。

【返回值】

返回的是一个字符串的列表。

【体验代码】

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')
# 读取文件
c = f.readlines()
print(c)
print(type(c))
# 关闭文件
f.close()

【终端输出】

['马行千里\n', '不洗沙尘\n', '十年饮冰\n', '难凉热血  ']
<class 'list'>

【readline和readlines的异同】

相同点每次都读取一行。

区别就是一个返回的是字符串类型,一个返回的是列表类型。

readlines会把读取到的每一行都当做一个列表的元素,添加到列表中。

【for循环提取列表中的元素】

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')
# 读取文件
c = f.readlines()
for i in c:print(i,end="")  # end=""消除换行效果
# 关闭文件
f.close()

【终端输出】

马行千里
不洗沙尘
十年饮冰
难凉热血  

5. 代码总结

5.1 read方法读取全部内容

【open语句】

# open函数打开文件
f = open("八字文案.txt","r", encoding='utf-8')# read方法读取文件
c = f.read()
print(c)# close函数关闭文件
f.close()

【终端输出】

马行千里
不洗沙尘
十年饮冰
难凉热血  

【with open语句】

# with open 语句打开文件
with open("八字文案.txt","r", encoding='utf-8') as f:# 读取文件print(f.read())

【终端输出】

马行千里
不洗沙尘
十年饮冰
难凉热血  

5.2 readline方法读取一行,返回字符串

【读取一行】

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')
# 读取文件
c = f.readline()
print(c) 
# 关闭文件
f.close()

【终端输出】

马行千里

【while循环读取全部内容】

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')# 读取文件
c = f.readline()
while c !="":print(c,end="")c = f.readline()
# 关闭文件
f.close()

【终端输出】

马行千里
不洗沙尘
十年饮冰
难凉热血  

5.3 readlines方法读取一行,返回列表

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')
# 读取文件
c = f.readlines()
print(c)
print(type(c))
# 关闭文件
f.close()

【终端输出】

['马行千里\n', '不洗沙尘\n', '十年饮冰\n', '难凉热血  ']
<class 'list'>

【for循环提取列表中的元素】

# 打开文件
f = open("八字文案.txt","r", encoding='utf-8')
# 读取文件
c = f.readlines()
for i in c:print(i,end="")  # end=""消除换行效果
# 关闭文件
f.close()

【终端输出】

马行千里
不洗沙尘
十年饮冰
难凉热血 

相关文章:

81. read readline readlines 读取文件的三种方法

81. read readline readlines 读取文件的三种方法 文章目录 81. read readline readlines 读取文件的三种方法1. 读取文件的三种方法2. read方法3. readline方法4. readlines方法5. 代码总结5.1 read方法读取全部内容5.2 readline方法读取一行&#xff0c;返回字符串5.3 readli…...

【社区图书馆】【图书活动第四期】

目录 一、前言 二、作者简介 三、《PyTorch高级机器学习实战》内容简介 四、书目录 一、前言 今天&#xff0c;偶尔逛到csdn社区图书馆&#xff0c;看到有活动 “【图书活动第四期】来一起写书评领实体奖牌红包电子勋章吧&#xff01;”&#xff08;活动到今天结束&#xf…...

webpack学习指南(上)

构建流程 Webpack 的构建流程可以分为以下几个步骤&#xff1a; 解析配置文件&#xff1a;Webpack 会读取项目中的 webpack.config.js 文件&#xff0c;并解析其中的配置项。 解析入口文件&#xff1a;Webpack 通过配置文件中设置的 entry 入口&#xff0c;递归地解析出所有依…...

刷题记录˃ʍ˂

一、1033. 移动石子直到连续 思路 这道题是一道数学题&#xff0c;它一共分为三种可能 第一种可能为三个石子本来就是连续的时候 第二种可能为最少步数为1的时候&#xff0c;相邻石子不能大于一格 第三种可能为最少步数为2的时候&#xff0c;这时相邻石子大于一格 那么第二…...

Word2vec原理+实战学习笔记(二)

来源&#xff1a;投稿 作者&#xff1a;阿克西 编辑&#xff1a;学姐 前篇&#xff1a;Word2vec原理实战学习笔记&#xff08;一&#xff09; 视频链接&#xff1a;https://ai.deepshare.net/detail/p_5ee62f90022ee_zFpnlHXA/6 5 对比模型&#xff08;论文Model Architectur…...

什么是Java的多线程?

Java的多线程是指在同一时间内&#xff0c;一个程序中同时运行多个线程。每个线程都是一个独立的执行路径&#xff0c;可以独立地执行代码。Java中的多线程机制使得程序可以更高效地利用计算机的多核处理器和CPU时间&#xff0c;从而提高程序的性能和响应能力。 创建和使用Jav…...

“use strict“是什么? 使用它有什么优缺点?

严格模式 - JavaScript | MDN Javascript 严格模式详解 - 阮一峰的网络日志 1、"use strict" 是什么? "use strict" &#xff1a;指定代码在严格条件下执行&#xff1b; 2、 使用 "use strict" 有什么优缺点&#xff1f; ① 严格模式通过抛出错…...

【C++】C++11常用特性总结

哥们哥们&#xff0c;把书读烂&#xff0c;困在爱里是笨蛋&#xff01; 文章目录 一、统一的列表初始化1.统一的{}初始化2.std::initializer_list类型的初始化 二、简化声明的关键字1.decltype2.auto && nullptr 三、STL中的一些变化1.新增容器&#xff1a;array &…...

泛型——List 优于数组

数组与泛型有很大的不同&#xff1a; 1. 数组是协变的&#xff08;covariant&#xff09; 意思是&#xff1a;如果Sub是Super的子类型&#xff0c;则数组类型Sub[] 是数组类型Super[] 的子类型。 2. 泛型是不变的&#xff08;invariant&#xff09; 对于任何两种不同的类型Ty…...

JavaScript中对象的定义、引用和复制

JavaScript是一种广泛使用的脚本语言&#xff0c;其设计理念是面向对象的范式。在JavaScript中&#xff0c;对象就是一系列属性的集合&#xff0c;每个属性包含一个名称和一个值。属性的值可以是基本数据类型、对象类型或函数类型&#xff0c;这些类型的值相互之间有着不同的特…...

JavaScript通过函数异常处理来输入圆的半径,输出圆的面积的代码

以下为实现通过函数异常处理来输入圆的半径&#xff0c;输出圆的面积的代码和运行截图 目录 前言 一、通过函数异常处理来输入圆的半径&#xff0c;输出圆的面积 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择&#xff0c;您可以…...

Ubuntu 安装 Mysql

主要内容 本文主要是实现在虚拟机 Ubuntu 18.04 成功安装 MySQL 5.7&#xff0c;并实现远程访问功能&#xff0c;以 windows 下客户端访问虚拟机上的 mysql 数据库。 1. 切换至 root 用户 &#xff0c;shell 终端指令均执行在 root 用户下 sudo su 2. 安装并设置 mysql 安…...

【五一创作】【Midjourney】Midjourney 连续性人物创作 ② ( 获取大图和 Seed 随机种子 | 通过 seed 随机种子生成类似图像 )

文章目录 一、获取大图和 Seed 随机种子二、通过 seed 种子生成类似图像 一、获取大图和 Seed 随机种子 注意 : 一定是使用 U 按钮 , 在生成的大图的基础上 , 添加 信封 表情 , 才能获取该大图的 Seed 种子编码 ; 在上一篇博客生成图像的基础上 , 点击 U3 获取第三张图的大图 ;…...

分布式事务 --- Seata事务模式、高可用

一、事务模式 1.1、XA模式 XA 规范 是 X/Open 组织定义的分布式事务处理&#xff08;DTP&#xff0c;Distributed Transaction Processing&#xff09;标准&#xff0c;XA 规范 描述了全局的TM与局部的RM之间的接口&#xff0c;几乎所有主流的数据库都对 XA 规范 提供了支持。…...

SQL(基础)

DDL: 数据定义语言 Definition&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;CREATE、DROP、ALTER DML: 数据操作语言 Manipulation&#xff0c;用来对数据库表中的数据进行增删改 INSERT、UPDATE、DELETE 注意&#xff1a; DDL是改变表的结构 DML…...

「OceanBase 4.1 体验」OceanBase 4.1社区版的部署及使用体验

「OceanBase 4.1 体验」OceanBase 4.1社区版的部署及使用体验 一、前言1.1 本次实践介绍1.2 本次实践目的 二、准备环境资源2.1 部署前需准备工作2.2 本地环境规划 三、部署Docker环境3.1 安装Docker3.2 配置Docker镜像加速3.3 开启路由转发3.4 重启Docker服务 四、检查本地Doc…...

计算机操作系统实验:银行家算法模拟

目录 前言实验目的实验内容实验原理实验过程代码如下代码详解算法过程运行结果 总结 前言 本文是计算机操作系统实验的一部分&#xff0c;主要介绍了银行家算法的原理和实现。银行家算法是一种用于解决多个进程对多种资源的竞争和分配的算法&#xff0c;它可以避免死锁和资源浪…...

机器学习:多项式拟合分析中国温度变化与温室气体排放量的时序数据

文章目录 1、前言2、定义及公式3、案例代码1、数据解析2、绘制散点图3、多项式回归、拟合4、注意事项 1、前言 ​ 当分析数据时&#xff0c;如果我们找的不是直线或者超平面&#xff0c;而是一条曲线&#xff0c;那么就可以用多项式回归来分析和预测。 2、定义及公式 ​ 多项…...

一个 24 通道 100Msps 逻辑分析仪

这是一个创建非常便宜的逻辑分析仪的项目&#xff0c;但其功能可与昂贵的商业分析仪相媲美。该分析仪可以以每秒 1 亿个样本的最高速度对多达 24 个通道进行采样&#xff0c;并且可以通过单个通道中的极性变化或多达 16 个通道形成的模式来触发。 该项目不仅包含硬件&#xff0…...

使用Process Explorer和Dependency Walker排查C++程序中dll库动态加载失败问题

目录 1、exe主程序启动时的库加载流程说明 2、加载dll库两种方式 2.1、dll库的隐式引用...

网工Python:如何使用Netmiko的SCP函数进行文件传输?

在网络设备管理中&#xff0c;传输配置文件、镜像文件等是经常需要进行的操作。Netmiko是一个Python库&#xff0c;可用于与各种网络设备进行交互&#xff0c;提供了一些用于传输文件的函数&#xff0c;其中包括SCP&#xff08;Secure Copy Protocol&#xff09;函数。本文将介…...

题目 3166: 蓝桥杯2023年第十四届省赛真题-阶乘的和--不能完全通过,最好情况通过67.

原题链接&#xff1a; 题目 3166: 蓝桥杯2023年第十四届省赛真题-阶乘的和 https://www.dotcpp.com/oj/problem3166.html 致歉 害&#xff0c;首先深感抱歉&#xff0c;这道题还是没有找到很好的解决办法。目前最好情况就是67分。 这道题先这样跳过吧&#xff0c;当然以后还…...

ChatGPT- OpenAI 的 模型(Model) 介绍

ChatGPT的火爆程度大家都知道了&#xff0c;该章节我们来了解一下 ChatGPT 一个关键概念 - 模型(Model)。主要是为大家介绍一下在 OpenAI 中&#xff0c;究竟有哪些模型可以使用。 在后续的章节&#xff0c;我们会分单独的小章节逐一的为大家介绍各个不同模型的调用以及接口参…...

X 态及基于 VCS 的 X-Propagation 检测

&#x1f525;点击查看精选 IC 技能树系列文章&#x1f525; &#x1f525;点击进入【芯片设计验证】社区&#xff0c;查看更多精彩内容&#x1f525; &#x1f4e2; 声明&#xff1a; &#x1f96d; 作者主页&#xff1a;【MangoPapa的CSDN主页】。⚠️ 本文首发于CSDN&#…...

数据库之事务隔离级别详解

事务隔离级别详解 一、事务的四大特性&#xff08;ACID&#xff09;1. 原子性(atomicity)&#xff1a;2. 一致性(consistency)&#xff1a;3. 隔离性(isolation)&#xff1a;4. 持久性(durability)&#xff1a; 二、事务的四种隔离级别1. 读未提交(Read uncommitted)&#xff1…...

守护进程、僵尸进程、孤儿进程

守护进程、僵尸进程、孤儿进程 守护进程&#xff08;Daemon Process&#xff09; 定义 守护进程又称Daemon进程&#xff08;精灵进程&#xff09;&#xff0c;是Linux中的后台服务进程。 它的生命周期较长&#xff0c;通常独立于控制终端并且周期性地执行某种任务或者等待处…...

软件设计师笔记

软件设计师笔记 计算机组成与体系结构 数据的表示、计算机结构、Flynn分类法、CISC与RISC、流水线技术、存储系统、总线系统、可靠性、校验码 1. 数据的表示 &#xff08;一&#xff09;进制转换 R进制转十进制使用按权展开法&#xff1a; 十进制转R进制使用短除法 二进制…...

4_用dockerfile制作镜像

Docker 镜像原理 思考&#xff1a; Docker 镜像本质是什么&#xff1f; Docker 中一个centos镜像为什么只有200MB&#xff0c;而一个centos操作系统的iso文件要几个个G&#xff1f; Docker 中一个tomcat镜像为什么有500MB&#xff0c;而一个tomcat安装包只有70多MB&#xff…...

肝一肝设计模式【四】-- 建造者模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 文章目录 系列文章目录前言一、什么是建造者模式二、举个栗子三、静态内部类写法四、开源框…...

从设计到产品

从设计到产品 最近上的一些课的笔记&#xff0c;从 0 开始设计项目的角度去看产品。 设计系统 设计系统(design system) 不是 系统设计(system design)&#xff0c;前者更偏向于 UI/UX 设计部分&#xff0c;后者更偏向于实现部分。 个人觉得&#xff0c;前端开发与 UI/UX 设…...

哪个设计网站做兼职好/守游网络推广平台

目前&#xff0c;人脸识别已经在门禁控制范围内得到广泛使用&#xff0c;人脸识别系统具有的便捷、安全、不易被复制冒用等特点&#xff0c;受到市场的青睐。而翼闸是作为人流通道的控制设备&#xff0c;用于人员出、入口需要进行控制的地方&#xff0c;可以使人流有序的通过通…...

甘孜网站建设/东莞网站推广软件

转载于:https://www.cnblogs.com/xiaobiaomei/p/9216717.html...

wordpress仿虎嗅/关键词seo优化

传输层&#xff08;TCP/IP、UDP&#xff09;&#xff1a;向用户提供可靠的端到端&#xff08;End-to-End&#xff09;服务传输层向高层屏蔽了下层数据通信的细节应用层&#xff08;HTTP&#xff09;:为应用软件提供很多服务构建于TCP协议之上屏蔽网络传输相关细节HTTP三次握手&…...

天津制作网页/杭州网站优化方案

R Markdown是一种用于在R中生成可重复生成的报告的开源工具。它可以帮助您将所有代码&#xff0c;结果和编写都放在一个地方&#xff0c;并以一种有吸引力且易于消化的方式格式化所有内容。它也是将您的数据工作展示给其他人的宝贵工具。使用R Markdown&#xff0c;您可以选择将…...

网站建设 太原/新开传奇网站发布站

cmd下编译运行Java步骤&#xff08;前提是JDK和环境变量已配置好&#xff09;,假设HelloWorld.java放在D:\JavaProject\src 1.转到文件所在盘符&#xff1a; 输入 d&#xff1a; 然后回车键 2.进入相应文件夹&#xff1a; cd JavaProject\src 然后回车键 3.编译Java文件: j…...

wordpress出站链接/谷歌商店官网

abstract abstract: 抽象的 1.可以用来修饰:类、方法 2.具体的: abstract修饰类:抽象类 > 此类不能实例化 > 抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程) > 开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作 --…...