Python 中read、readline、readlines 有哪些区别?

在 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(),以减少内存占用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值