Python文件读写操作-2·文件读操作(Read)
2022-12-23 本文已影响0人
技术老男孩
一、文件Read操作概述:
- 要使用文本文件中的信息,首先需要将信息读取到内存中。
- 我们可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。
二、文件指针:
- 文件指针 标记 从哪个位置开始读取数据
- 第一次打开 文件时,通常 文件指针会指向文件的开始位置
- 当执行了 read 方法后,文件指针 会移动到 读取内容的末尾
- 默认情况下会移动到 文件末尾
-
重新打开文件时,文件指针 重新指向文件的最 开始位置
文件指针.png
三、read 方法 —— 读取文件
- read() 方法可以一次性 读入 并 返回 文件的 所有内容
- read() 方法执行后,会把 文件指针 移动到 文件的末尾
# Read 用法
# 打开文件
fr = open("/etc/hosts", mode="r")
# 读取前5个字符
print(fr.read(5))
# 接着读后续的3个字符
print(fr.read(3))
# 读取剩余所有字符
print(fr.read())
# 关闭资源
fr.close()
四、Readline 方法 —— 按行读取
- read 方法默认会把文件的 所有内容 一次性读取到内存
- 如果文件太大,对内存的占用会非常严重
- readline 方法可以一次读取一行内容
- 方法执行后,会把 文件指针 移动到下一行,准备再次读取
readline() 用法
# 打开文件
fr = open("/etc/passwd", mode="r")
# 读取一行数据
print(fr.readline(), end="")
print(fr.readline())
# 关闭资源
fr.close()
案例:读取大文件的正确姿势
print("\n案例一:\n打印大文本文件etc/passwd\n")
# 打开文件
fr = open('/etc/passwd', mode='r')
# 循环读取文件
while True:
data = fr.readline()
if data == "":
break
print("data: ", data, end="")
# 关闭资源
fr.close()
五、Readlines 方法
- readlines() 方法读取所有(剩余的)行然后把它们作为一个 字符串列表 返回
readlines() 运用
# 打开文件
fr = open("/etc/hosts", mode="r")
# 读取文件
data = fr.readlines()
# 打印所有行
print(data)
print(data[1])
# 关闭资源
fr.close()
for&readlines()结合使用
for item in data:
print("item:", item, end="")
使用readlines()的简写方式
- 使用"fr"相当于是"fr.readlines()"
print("\n使用readline()的简写方式:fr\n")
fr = open("/etc/shadow", mode="r")
for item in fr:
print("item:", item, end="")
fr.close()