69 lines
2.3 KiB
Python
69 lines
2.3 KiB
Python
# Python提供了三种主要的文件读取方法,每种方法都有其特定的用途和特点:
|
|
|
|
# read():一次性读取整个文件内容
|
|
# readline():逐行读取文件,每次读取一行
|
|
# readlines():一次性读取所有行,返回列表
|
|
|
|
# 特性 read() readline() readlines()
|
|
# 读取方式 一次性读取全部内容 逐行读取 一次性读取所有行
|
|
# 返回类型 字符串 字符串 列表(每行一个元素)
|
|
# 内存使用 高(整个文件) 低(单行) 高(所有行)
|
|
# 适用场景 小文件、配置文件 大文件、逐行处理 需要所有行的场景
|
|
# 文件指针 移动到文件末尾 移动到下一行 移动到文件末尾
|
|
|
|
|
|
# read()方法
|
|
# 一次读取整个文件内容
|
|
|
|
# 创建测试文件内容,包含多行文本
|
|
test_content = """第一行:Python文件读取
|
|
第二行:read()方法示例
|
|
第三行:一次性读取全部内容
|
|
第四行:适合小文件处理
|
|
第五行:返回字符串类型"""
|
|
|
|
with open("test-file.txt", "w", encoding="utf-8") as f:
|
|
f.write(test_content)
|
|
|
|
# 读取整个文件
|
|
with open("test-file.txt", "r", encoding="utf-8") as f:
|
|
content = f.read()
|
|
print(content)
|
|
print(f"文件长度{len(content)}")
|
|
print(f"指针位置{f.tell()}")
|
|
|
|
|
|
# readline() 逐行读取
|
|
|
|
with open("test-file.txt", "r", encoding="utf-8") as f:
|
|
line_num = 1
|
|
while True:
|
|
line = f.readline()
|
|
if not line:
|
|
break
|
|
print(f"读取第{line_num}行,内容{line}")
|
|
line_num += 1
|
|
|
|
# 重置文件指针并演示指定大小读取
|
|
print("=== readline() 指定大小读取 ===")
|
|
|
|
with open("test-file.txt", "r", encoding="utf-8") as f:
|
|
partial_line = f.readline(10)
|
|
print(f"读取前10个字符: {repr(partial_line)}")
|
|
print(f"剩余内容: {repr(f.readline())}")
|
|
|
|
|
|
# readlines()方法
|
|
# 一次读取所有航,返回列表
|
|
|
|
with open("test-file.txt", "r", encoding="utf-8") as f:
|
|
lines = f.readlines()
|
|
print(f"打印数据类型{type(lines)}")
|
|
print(f"打印数据长度{len(lines)}")
|
|
print(lines)
|
|
|
|
#
|
|
for index, line in enumerate(lines, 1):
|
|
clear_line = line.strip() # 去除收尾空格以及换行符
|
|
print(f"第{index}行:{repr(clear_line)}")
|