sethserver / Python

Python: How to Read a File Line by Line

When using Python for Data Science or general Programming you'll find yourself needing to read and parse very very very large files. The easiest way to accomplish this is by iterating over the actual file object. The code snippet below should get you parsing data very quickly.

with open('filename.ext', 'r') as file_handle: for line in file_handle: print(line) # this is where you actually process your data

We start by using Python's context manager to manage the file opened using the builtin open function. By using the context manager we do not have to worry about freeing the resources allocated by (i.e. closing the file) the open function. We open the file in 'open for reading' mode and use the variable name file_handle.

with open('filename.ext', 'r') as file_handle:

The second line uses a little bit of Python magic. The default file open function will return an object that supporting IOBase. IOBase supports the iterator protocol, meaning that an IOBase object can be iterated over yielding the lines in a stream. Lines are defined slightly differently depending on whether the stream is a binary stream (yielding bytes), or a text stream (yielding character strings). More simply, open returns an object that can be iterated on like a list or a set.

for line in file_handle:

The final line simply prints each line. This isn't very useful in practical terms, but is a great place to start if you need to parse your data, or extract certain lines or elements.

Good luck and happy file parsing!

-Sethers