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

在Python中,我们经常需要对文件进行读写操作。而在文件操作中,我们经常需要统计文件的行数或者在每一行前面添加行号。为了简化这些操作,Python提供了with语句,可以更方便地进行文件操作,并且能够在每一行前面添加行号。

什么是with语句?

with语句是Python中的一种异常处理机制,它可以确保在使用完资源后自动释放资源,不需要手动进行关闭。在文件操作中,使用with语句可以自动关闭文件,避免出现资源泄露的问题。

使用with语句读取文件内容

首先,我们先来看看如何使用with语句读取文件的内容。

with open('file.txt', 'r') as f:
    lines = f.readlines()
    for line in lines:
        print(line)

在这个例子中,我们使用with语句打开文件file.txt,并将文件内容逐行读取到一个列表lines中。然后,我们遍历这个列表,并打印每一行的内容。

使用with语句打开文件后,文件会被自动关闭,无需手动调用f.close()方法,大大简化了文件操作的流程。

在每一行前面添加行号

接下来,我们来看看如何在每一行前面添加行号。

with open('file.txt', 'r') as f:
    lines = f.readlines()
    for i, line in enumerate(lines):
        print(f"{i+1}: {line}")

在这个例子中,我们使用enumerate()函数获取每一行的行号和内容。通过f-string的方式,我们可以在打印每一行时,使用{i+1}来表示行号。

将行号添加到文件中

除了在控制台打印每一行的行号外,我们还可以将行号添加到文件中。

with open('file.txt', 'r') as f:
    lines = f.readlines()
    with open('new_file.txt', 'w') as new_f:
        for i, line in enumerate(lines):
            new_f.write(f"{i+1}: {line}")

在这个例子中,我们首先使用with语句打开原始文件file.txt,并将内容逐行读取到lines列表中。然后,我们使用另一个with语句打开一个新的文件new_file.txt,并以写入模式打开。

在遍历每一行时,我们使用write()方法将行号和内容写入新文件中。通过这种方式,我们就实现了在每一行前面添加行号的功能。

总结

在Python中,使用with语句可以更方便地进行文件操作,并且可以自动释放资源,避免出现资源泄露的问题。通过使用enumerate()函数,我们可以很容易地获取行号,然后可以使用f-string将行号添加到每一行的前面。

使用with语句在每一行前面添加行号的代码示例:

with open('file.txt', 'r') as f:
    lines = f.readlines()
    for i, line in enumerate(lines):
        print(f"{i+1}: {line}")

通过这种简单的方式,我们可以更加方便地进行文件操作,同时实现在每一行前面添加行号的功能。