小能豆

如何逐行读取大型文本文件,而不将它们加载到内存中?

javascript

我想逐行读取一个大文件(>5GB),而不将其所有内容加载到内存中。我无法使用,readlines()因为它会在内存中创建一个非常大的列表。


阅读 43

收藏
2024-07-15

共1个答案

小能豆

要逐行读取大型文件而不将所有内容加载到内存中,您可以在上下文管理器中使用 Python 的内置文件对象。这种方法一次读取一行,节省内存。您可以这样做:

with open('large_file.txt', 'r') as file:
    for line in file:
        # Process each line
        print(line.strip())

在此示例中,with open()语句打开文件并确保在执行块后正确关闭文件。该for line in file:构造迭代文件对象,每次读取一行。

此方法适用于大文件,因为它在任何时候都只在内存中保留一行。您可以print(line.strip())用所需的任何处理逻辑进行替换。

2024-07-15