在 Python 中,read()
、readline()
和 readlines()
都是用于读取文件内容的方法,但它们的行为有所不同:
1. read(size=-1)
- 作用:读取整个文件的内容,并返回字符串(文本模式)或字节(二进制模式)。
- 参数:
size
:可选参数,指定要读取的字节数(默认为-1
,表示读取整个文件)。
- 返回值:读取的内容(字符串或字节)。
- 适用场景:适用于读取小型文件,不适用于大文件(可能占用大量内存)。
with open("example.txt", "r") as f:
content = f.read()
print(content) # 读取整个文件
2. readline(size=-1)
- 作用:每次读取文件的一行内容。
- 参数:
size
:可选参数,指定读取的最大字节数(不常用)。
- 返回值:读取的一行字符串(包含换行符
\n
,除非是最后一行)。 - 适用场景:适用于逐行读取文件,适合处理较大的文件。
with open("example.txt", "r") as f:
line1 = f.readline() # 读取第一行
line2 = f.readline() # 读取第二行
print(line1, line2)
3. readlines(hint=-1)
- 作用:读取整个文件,并返回一个包含所有行的列表。
- 参数:
hint
:可选参数,指定要读取的最大字节数(不常用)。
- 返回值:一个列表,每个元素是一行内容(包含换行符
\n
)。 - 适用场景:适用于需要将所有行存入列表中进行处理的场景,不适用于特别大的文件。
with open("example.txt", "r") as f:
lines = f.readlines()
print(lines) # ['第一行\n', '第二行\n', '第三行']
总结对比:
方法 | 读取内容 | 返回类型 | 适用场景 |
---|---|---|---|
read() | 整个文件 | 字符串(文本模式)/字节(二进制模式) | 适合小文件 |
readline() | 一行 | 字符串 | 逐行读取大文件 |
readlines() | 所有行 | 列表(每个元素是一行) | 适合存储所有行进行处理 |
如果文件很大,建议使用 readline()
逐行读取或使用 for line in file
遍历文件,而不是 read()
或 readlines()
,以减少内存占用。