Posted By: Anonymous
I need to get a line count of a large file (hundreds of thousands of lines) in python. What is the most efficient way both memory- and time-wise?
At the moment I do:
def file_len(fname): with open(fname) as f: for i, l in enumerate(f): pass return i + 1
is it possible to do any better?
You can’t get any better than that.
After all, any solution will have to read the entire file, figure out how many
n you have, and return that result.
Do you have a better way of doing that without reading the entire file? Not sure… The best solution will always be I/O-bound, best you can do is make sure you don’t use unnecessary memory, but it looks like you have that covered.