How can I read large text files in Python, line by line, without loading it into memory? How can I read large text files in Python, line by line, without loading it into memory? python python

How can I read large text files in Python, line by line, without loading it into memory?


I provided this answer because Keith's, while succinct, doesn't close the file explicitly

with open("log.txt") as infile:    for line in infile:        do_something_with(line)


All you need to do is use the file object as an iterator.

for line in open("log.txt"):    do_something_with(line)

Even better is using context manager in recent Python versions.

with open("log.txt") as fileobject:    for line in fileobject:        do_something_with(line)

This will automatically close the file as well.


An old school approach:

fh = open(file_name, 'rt')line = fh.readline()while line:    # do stuff with line    line = fh.readline()fh.close()