Python 中的 Readlines

2025年03月17日 | 阅读 9 分钟
  • Readlines () 是 Python 中一个用于一次性逐行读取特定文件的函数。
  • 它在减少使用蛮力方法、循环和不同迭代来读取文件时的时间复杂度方面非常有用。
  • 它是一个单行代码且简单的函数,比使用多个循环来仅读取文件要好得多。
  • 在 C 语言中,读取文件是一项相当艰巨的任务,但由于 Python 中这个 readlines() 函数,它的实现非常容易。
  • readlines() 函数仅从给定文件中读取一行完整的内容;读取后,它将包含所有元素的整行以列表形式返回。
  • 如果我们想以常规读取模式打开文件,readline() 函数将返回字符串。
  • 如果我们想以二进制模式打开文件,那么 readline() 函数将返回一个二进制对象。
  • 在行末附加换行符(" \n ")也非常有益。
  • 此 readlines() 函数最适合小型文件,其中包含的数据较少,可以轻松地在更短的时间内读取整个文件。
  • 它首先一次性将文件内容读取到内存中,然后将它们分成多行。借助 strip() 函数,我们可以遍历 readline() 函数生成的整个列表,并使用 strip() 函数去除换行符 ' \n '。

Python 文件概念

Python 编程语言提供了各种内置函数来写入、创建读取文件。 Python 中处理两种类型的文件,一种是普通文本文件,另一种是主要用二进制语言(0 和 1)编写的二进制文件。

  1. 文本文件:这些文件包含文本格式的数据,该数据以称为 EOL(行尾)的特殊字符终止,在 Python 中默认是换行符(' \n ')。
  2. 二进制文件:这类文件包含二进制序列格式的数据,主要由 0 和 1 组成。

文件操作的某些基本步骤

打开文件:打开文件使用 open() 函数;使用此函数时,我们必须将文件名和访问模式作为参数传递。

此处的文件访问模式如下

  1. 只读 ( r ):用于从文件中读取数据。它将文件指针定位在文件开头。如果指定的文件不存在,它将生成输入/输出错误。只读是打开文件的默认模式;使用此模式时,我们无法编辑文件数据,也无法将其写入文件。
  2. 只写 ( ' w ' ):用于将数据写入文件,将文件指针定位在文件开头。如果指定的文件不存在,它将生成输入/输出错误。使用此模式时,我们无法从文件中读取数据。
  3. 读写 ( ' r+ ' ):此模式用于从文件中写入和读取数据。如果与前一种模式进行比较,我们可以区分出在只读模式下我们不能写入文件,但在这种模式下我们可以读写文件。

例如,如果我们有一个名为 hello.txt 的文件,并且想以写入模式打开它,那么我们可以这样使用:

File1 = open ( " hello.txt " , " w " )

关闭文件:Close 函数用于释放文件所需的内存空间;当不再需要文件或我们想关闭整个文件并以不同模式打开文件时,可以使用此方法。它通过使用 close() 函数来执行,并且在该函数中,我们不需要传递任何参数;可以通过文件名访问此函数,并通过点 close 函数进行访问。

例如,如果我们有一个名为 hello.txt 的文件,并且想以写入模式打开它,那么我们可以这样使用:

File1 = open ( " hello.txt " , " w " )
File1.close ( )

写入文件:顾名思义,我们可以轻松地预测在此方法中我们需要写入文件的内容。有两种写入文件的方法:

  1. Write ( ):在此函数中,我们必须传递一个参数,即要插入文件的字符串。
    例如,如果我们有一个名为 hello.txt 的文件,并且想以写入模式打开它,那么我们可以这样使用:
    File1 = open ( " hello.txt " , " w " )
    File1.write ( str )
    这里,str 是我们想插入文件的字符串。
  2. Writelines ( ):在此函数中,我们必须传递一个包含多个字符串的数组或列表。它用于一次性将多个不同的字符串插入文件中。
    例如,如果我们有一个名为 hello.txt 的文件,并且想以写入模式打开它,那么我们可以这样使用:
    File1 = open ( " hello.txt " , " w " )
    File1.writelines( S ) for S = [ str1 , str2 , str3 ]

从文件读取:同样,在这个例子中,我们可以预测我们要做什么;甚至在这个教程中,我们将详细介绍一种读取方法。在此方法中,我们需要从特定文件中读取数据。有三种从文件读取数据的方法:

  1. Read ( ):以字符串形式返回读取的字节。读取 n 个字节;如果未指定 n,则读取整个文件。
  2. Readline ( ):读取文件的某一行并以字符串形式返回。对于指定的 n,最多读取 n 个字节。readline() 函数一次最多读取一行;即使 n 超出范围,它也只读取一行。readline() 函数读取文件的某一行并将其作为字符串返回。它将一个整数 n 作为参数来读取每次读取的字符数。Readline() 方法在读取非常大的文件数据时非常高效,因为它逐行获取数据并返回并打印在屏幕上。Readline() 返回文件中的下一行,该行末尾包含一个换行符。另外,如果到达文件末尾,它将返回一个空字符串。
  3. readlines ( ):读取所有行并将它们作为字符串元素返回到一个列表中。Readlines() 用于一次性读取所有行,然后将它们作为字符串元素返回到一个列表中。此函数可用于小文件,因为它将整个文件内容读取到内存中,然后将其分割成单独的行。使用 strip() 函数,我们可以遍历列表并使用 strip() 函数去除换行符 '\n'。

现在,让我们通过一个例子来理解读取文件的概念。

Python 中读取文件的示例

示例 1

使用 readlines() 函数读取文件

上述示例的输出

Readlines in Python

示例 2

使用 readline() 函数读取文件

上述示例的输出

Readlines in Python

示例 3

使用简单 for 循环读取文件

在此方法中,我们不使用 readline() 函数,也不使用 readlines() 函数,因为我们在上面的示例中已经看到了这两个函数的使用;在此方法中,我们将使用 for 循环打印文件数据。我们将迭代文件对象并逐行读取文件,尽管我们使用了一些 Python 预定义的内置函数。使用这些内置 Python 函数,我们可以使用 for 循环隐式地轻松遍历文件对象,并结合使用可迭代对象。

上述示例的输出

Readlines in Python

示例 4

使用 'with' 语句读取文件

如果我们注意到上面的 3 个示例,我们可以很容易地发现,每次需要打开文件时,都需要关闭它;如果我们不关闭文件,它会在程序中创建许多错误,因为直到我们关闭文件之前,许多更改都不会在文件中完成或生效。

因此,为了克服这个问题,我们将使用 'with' 语句,它主要用于 Python 中的异常处理,使代码更清晰、更易读。在这里,在这个例子中,你可以很容易地注意到我们没有一次又一次地使用 file.close() 函数来保存文件,使用该语句可以自动完成。因此,它减少了代码行数,并使程序运行得更快、实现更有效。

上述示例的输出

Readlines in Python