Python使用with语句在文本文件每一行前面添加行号

作为一名经验丰富的开发者,你需要教一位刚入行的小白如何使用Python的with语句在文本文件每一行前面添加行号。以下是实现这个功能的步骤:

步骤概览

步骤 描述
1 打开要读取的文件
2 创建一个新的文件来保存添加行号后的内容
3 读取原始文件的每一行
4 在每一行前面添加行号
5 将添加行号后的内容写入新文件
6 关闭两个文件

现在让我们一步一步详细说明每个步骤应该做什么。

1. 打开要读取的文件

使用Python的open()函数来打开要读取的文件。在open()函数中,我们需要传入文件的路径和打开模式。对于读取文件,我们需要使用"r"模式。

with open("input.txt", "r") as file:
    # 在这里读取文件的内容

在这个例子中,我们打开名为input.txt的文件,并使用file代表这个文件对象。

2. 创建一个新的文件来保存添加行号后的内容

使用Python的open()函数再次创建一个新的文件,用于保存添加行号后的内容。同样使用"w"模式来打开文件,以便我们可以写入文件。

with open("output.txt", "w") as output_file:
    # 在这里写入添加行号后的内容

在这个例子中,我们创建了名为output.txt的新文件,并使用output_file代表这个文件对象。

3. 读取原始文件的每一行

使用file对象的readlines()方法来读取原始文件的每一行,并将其存储在一个列表中。这将使我们能够逐行处理文件的内容。

lines = file.readlines()

在这个例子中,我们将文件的每一行存储在名为lines的列表中。

4. 在每一行前面添加行号

使用enumerate()函数遍历lines列表,并使用line_number变量和line变量分别代表行号和行的内容。在每一行的内容前面添加行号,并将其存储在numbered_lines列表中。

numbered_lines = []
for line_number, line in enumerate(lines, start=1):
    numbered_line = f"{line_number}: {line}"
    numbered_lines.append(numbered_line)

在这个例子中,我们使用了f-string来格式化行号和行的内容,并将其添加到numbered_lines列表中。

5. 将添加行号后的内容写入新文件

使用output_file对象的writelines()方法将添加行号后的内容写入到新文件中。

output_file.writelines(numbered_lines)

在这个例子中,我们使用writelines()方法将numbered_lines列表中的内容写入到新文件中。

6. 关闭两个文件

最后,在完成文件的读取和写入操作后,使用with语句会自动关闭这两个文件。

至此,我们已经完成了在文本文件每一行前面添加行号的操作。完整的代码如下:

with open("input.txt", "r") as file:
    with open("output.txt", "w") as output_file:
        lines = file.readlines()
        numbered_lines = []
        for line_number, line in enumerate(lines, start=1):
            numbered_line = f"{line_number}: {line}"
            numbered_lines.append(numbered_line)
        output_file.writelines(numbered_lines)

希望这篇文章对你理解如何使用Python的with语句在文本文件每一行前面添加行号有所帮助!