📅  最后修改于: 2023-12-03 15:11:03.896000             🧑  作者: Mango
在 Python 中,我们经常会用到 readlines
方法来读取文件中的内容,并将其按行返回为一个列表。但是,当我们想要读取大文件时,一次性读取整个文件可能会导致内存耗尽,因此我们需要一个文件逐行读取的方法。在这里,我们将介绍如何使用 Python 实现这个方法。
readline()
方法可用于逐行读取文件。
with open('file.txt') as f:
line = f.readline()
while line:
print(line.strip())
line = f.readline()
在这个例子中,我们用 with
语句来打开文件,接着用 f.readline()
方法逐行读取文件内容。读出来的每一行末尾都有一个换行符,所以我们使用 strip()
方法来去掉换行符,将每一行打印出来。
使用这种方法遍历大文件会比一次性读取整个文件要快得多,并且不会耗尽内存。
除了使用 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 中逐行读取文件的方法。如果你遇到了处理大文件的问题,这两个方法都可以帮助你有效的避免内存耗尽的问题。