📜  没有 n 的 python readlines - Python (1)

📅  最后修改于: 2023-12-03 15:11:03.896000             🧑  作者: Mango

没有 n 的 Python readlines

在 Python 中,我们经常会用到 readlines 方法来读取文件中的内容,并将其按行返回为一个列表。但是,当我们想要读取大文件时,一次性读取整个文件可能会导致内存耗尽,因此我们需要一个文件逐行读取的方法。在这里,我们将介绍如何使用 Python 实现这个方法。

方法 1:使用 readline()

readline() 方法可用于逐行读取文件。

with open('file.txt') as f:
    line = f.readline()
    while line:
        print(line.strip())
        line = f.readline()

在这个例子中,我们用 with 语句来打开文件,接着用 f.readline() 方法逐行读取文件内容。读出来的每一行末尾都有一个换行符,所以我们使用 strip() 方法来去掉换行符,将每一行打印出来。

使用这种方法遍历大文件会比一次性读取整个文件要快得多,并且不会耗尽内存。

方法 2:使用 for 循环

除了使用 readline() 方法,我们还可以使用 for 循环来逐行读取文件。

with open('file.txt') as f:
    for line in f:
        print(line.strip())

这个例子与方法 1 很相似,但是使用 for 循环更方便,因为它会自动逐行读取文件。同时,也不需要显式调用 strip() 方法来去掉每行末尾的换行符。

注意事项

在使用任何一种方法之前,必须确保文件存在并且具有正确的文件名和文件路径。如果文件不存在,将会出现 FileNotFoundError 错误。

同时,以上两种方法都能读取最后一个空行。如果你不想读取最后一个空行,需要将 if line: 添加到方法 1 中的 while 循环以及方法 2 中的 for 循环中。

with open('file.txt') as f:
    line = f.readline()
    while line:
        if line:
            print(line.strip())
        line = f.readline()
with open('file.txt') as f:
    for line in f:
        if line:
            print(line.strip())

以上就是如何在 Python 中逐行读取文件的方法。如果你遇到了处理大文件的问题,这两个方法都可以帮助你有效的避免内存耗尽的问题。