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()