手机网站建设教材,好医生网站继续教育网,logo注册商标流程,如何将一个网页生成链接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…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方法
【功能】
读取文件的全部内容。
【返回值】
返回的数据类型为字符串。
【准备工作】 新建一个名为81的文件夹。 在81文件夹中新建一个八字文案.txt文件。
在81.txt文件中写入如下内容
马行千里 不洗沙尘 十年饮冰 难凉热血 在81文件夹中新建一个81.py文件。 用VScode编辑器打开81.py文件在该文件中编写代码。
【文件相关知识回顾】
文件的操作通常分为3个步骤 打开文件 操作文件 关闭文件
重点注意用Python操作文件后注意要记得关闭文件夹。
【体验代码读取文本的全部内容】
# open函数打开文件
f open(八字文案.txt,r, encodingutf-8)# read方法读取文件
c f.read()
print(c)# close函数关闭文件
f.close()【终端输出】
马行千里
不洗沙尘
十年饮冰
难凉热血 运行上面的代码我们读取了八字文案.txt文件中的内容。
【open函数语法回顾】
open(file, moder, encodingNone, errorsNone)参数file表示要打开文件的路径。 参数 encoding 表示文件的编码方式文件编码方式一般为 ‘utf-8’。 errors 参数表示读写文件时碰到错误的报错级别。 参数mode决定了打开文件的模式。
这里的r表示以只读模式打开文件。
【mode参数说明】 运行open函数返回的是一个文件对象。 open 语句需要使用close关闭文件。 with open 语句不需要使用close关闭文件。
【上面的代码可以优化如下】
# with open 语句打开文件
with open(八字文案.txt,r, encodingutf-8) as f:# 读取文件print(f.read())【终端输出】
马行千里
不洗沙尘
十年饮冰
难凉热血 【相关知识可参考以下链接】
69. open函数—打开文件并返回文件对象
70. with open( ) as 以自动关闭文件的方式打开文件
【体验代码read读取部分内容】
当read方法的括号为空时我们输出了txt文件的全部内容。
下面我们给read方法的括号中添加一个数值。
【read(1)】
with open(八字文案.txt,r, encodingutf-8) as f:# 读取文件print(f.read(1))【终端输出】
马当添加数值1时程序读取了txt文档的中的第一字符。
运行结果输出了第一个字符马。
【read(4)】
with open(八字文案.txt,r, encodingutf-8) as f:# 读取文件print(f.read(4))【终端输出】
马行千里当添加数值4时程序读取了txt文档的中的前4个字符。
运行结果输出了文档的前4个字符马行千里。
【read(5)】
with open(八字文案.txt,r, encodingutf-8) as f:# 读取文件print(f.read(5))【终端输出】
马行千里当添加数值5时程序读取了txt文档的中的前5个字符。
但运行结果还是输出了文档的前4个字符马行千里。
输入4和输入5的终端输出结果肉眼看是一样的但其本质是不一样的。 输入4的时候终端输出只有文本内容。
输入5的时候终端输出除了文本内容还有一个换行效果。
这是因为我在编写八字文案.txt文档时在马行千里后面敲了一个回车。
由了回车我们肉眼看到的是换行效果。
而程序把这个换行效果识别成换行符\n。
这个\n也是一个字符。
因此当程序运行到该字符时才会输出一个换行效果。
【read(12)】
with open(八字文案.txt,r, encodingutf-8) as f:# 读取文件print(f.read(12))【终端输出】
马行千里
不洗沙尘
十年3. readline方法
line[laɪn]线行。
line是行的意思。
【功能】
读取一行。
【返回值】
返回的数据类型是字符串。
【体验代码】
# 打开文件
f open(八字文案.txt,r, encodingutf-8)# 读取文件
c f.readline()
print(c) # 关闭文件
f.close()【终端输出】
马行千里运行上面的代码程序输出了文档中第一行的内容。
【输出多行】
如果我们需要输出多行就多次添加readline语句即可。
【输出2行】
# 打开文件
f open(八字文案.txt,r, encodingutf-8)
# 读取文件
c f.readline()
print(c)
c f.readline()
print(c)
# 关闭文件
f.close()【终端输出】
马行千里不洗沙尘【输出7行】
# 打开文件
f open(八字文案.txt,r, encodingutf-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, encodingutf-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, encodingutf-8)
# 读取文件
c f.readline()
while c !:print(c,end\n)c f.readline()
# 关闭文件
f.close()end\nprint函数是有很多个参数的且它的end参数默认值为end\n。
因此当我们不介意有换行的时候通常不会修改这个参数也不会写出这个参数都是使用默认值。
那如果我们不需要欢喜我们只需修改end参数的值即可。
这里我把end参数的值修改成一个空字符输出的结果就没有换行效果了。
# 打开文件
f open(八字文案.txt,r, encodingutf-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, encodingutf-8)
# 读取文件
c f.readlines()
print(c)
print(type(c))
# 关闭文件
f.close()【终端输出】
[马行千里\n, 不洗沙尘\n, 十年饮冰\n, 难凉热血 ]
class list【readline和readlines的异同】
相同点每次都读取一行。
区别就是一个返回的是字符串类型一个返回的是列表类型。
readlines会把读取到的每一行都当做一个列表的元素添加到列表中。
【for循环提取列表中的元素】
# 打开文件
f open(八字文案.txt,r, encodingutf-8)
# 读取文件
c f.readlines()
for i in c:print(i,end) # end消除换行效果
# 关闭文件
f.close()【终端输出】
马行千里
不洗沙尘
十年饮冰
难凉热血 5. 代码总结
5.1 read方法读取全部内容
【open语句】
# open函数打开文件
f open(八字文案.txt,r, encodingutf-8)# read方法读取文件
c f.read()
print(c)# close函数关闭文件
f.close()【终端输出】
马行千里
不洗沙尘
十年饮冰
难凉热血 【with open语句】
# with open 语句打开文件
with open(八字文案.txt,r, encodingutf-8) as f:# 读取文件print(f.read())【终端输出】
马行千里
不洗沙尘
十年饮冰
难凉热血 5.2 readline方法读取一行返回字符串
【读取一行】
# 打开文件
f open(八字文案.txt,r, encodingutf-8)
# 读取文件
c f.readline()
print(c)
# 关闭文件
f.close()【终端输出】
马行千里【while循环读取全部内容】
# 打开文件
f open(八字文案.txt,r, encodingutf-8)# 读取文件
c f.readline()
while c !:print(c,end)c f.readline()
# 关闭文件
f.close()【终端输出】
马行千里
不洗沙尘
十年饮冰
难凉热血 5.3 readlines方法读取一行返回列表
# 打开文件
f open(八字文案.txt,r, encodingutf-8)
# 读取文件
c f.readlines()
print(c)
print(type(c))
# 关闭文件
f.close()【终端输出】
[马行千里\n, 不洗沙尘\n, 十年饮冰\n, 难凉热血 ]
class list【for循环提取列表中的元素】
# 打开文件
f open(八字文案.txt,r, encodingutf-8)
# 读取文件
c f.readlines()
for i in c:print(i,end) # end消除换行效果
# 关闭文件
f.close()【终端输出】
马行千里
不洗沙尘
十年饮冰
难凉热血