跳到主要内容

Python中read,readline和readlines的区别 ?

参考答案:

在Python中,read(), readline(), 和 readlines() 是文件对象(file object)的三个常用的方法,用于从文件中读取内容。它们之间的主要区别在于它们读取和返回数据的方式。

  1. read([size]):此方法从文件中读取并返回指定数量的字节。如果没有指定 size,那么它会读取并返回文件的全部内容。需要注意的是,如果文件的大小超过了可用内存,这可能会导致程序崩溃。
  2. readline([size]):此方法从文件中读取并返回一行内容。如果指定了 size,则最多读取 size 个字节,并可能返回一个不完整的行。这个方法非常适合于逐行读取大文件,因为它不会一次性将整个文件加载到内存中。
  3. readlines([size]):此方法从文件中读取并返回所有的行,每一行作为一个字符串在列表中。如果指定了 size,则最多读取 size 个字节,并可能返回一个不完整的行列表。这个方法会将整个文件的内容加载到内存中,因此如果文件非常大,可能会导致内存不足。

以下是一个示例,展示了这三种方法的使用:

with open('myfile.txt', 'r') as file:
    # 使用 read 方法读取全部内容
    content = file.read()
    print(content)

    # 使用 readline 方法读取第一行
    first_line = file.readline()
    print(first_line)

    # 使用 readlines 方法读取所有行
    lines = file.readlines()
    for line in lines:
        print(line)

需要注意的是,文件对象在读取过程中有一个"文件指针",它指向当前读取的位置。read()readline()readlines() 都会移动这个指针。因此,如果你在读取了一部分内容之后,再次调用这些方法,它们将从上次读取的位置开始,而不是从文件的开头开始。如果你想要重新从头开始读取文件,你可以使用 file.seek(0) 将文件指针重置到文件的开头。