Read A Large Zipped Text File Line By Line In Python
I am trying to use zipfile module to read a file in an archive. the uncompressed file is ~3GB and the compressed file is 200MB. I don't want them in memory as I process the compres
Solution 1:
Python file objects provide iterators, which will read line by line. file.readlines()
reads them all and returns a list - which means it needs to read everything into memory. The better approach (which should always be preferred over readlines()
) is to just loop over the object itself, E.g:
import zipfile
with zipfile.ZipFile(...) as z:
with z.open(...) as f:
for line in f:
print line
Note my use of the with
statement - file objects are context managers, and the with statement lets us easily write readable code that ensures files are closed when the block is exited (even upon exceptions). This, again, should always be used when dealing with files.
Post a Comment for "Read A Large Zipped Text File Line By Line In Python"