with io.open(filename, ?r?) as fd:
lines = fd.readlines(hint=1000)
for line in lines:
# do something
I was just looking at the io module. io.open(?file?, ?r') returns an io.TextIOWrapper object, which has the io.TextIOWrapper.readlines(hint=-1/) method.
readlines(self, hint=-1, /)
Return a list of lines from the stream.
hint can be specified to control the number of lines read: no more
lines will be read if the total size (in bytes/characters) of all
lines so far exceeds hint.
I haven?t verified this, but that looks like it isn?t reading the entire file. With hint=1000, the method returns as many complete lines that consume less than 1000 bytes of the stream. I?m lazy. Didn?t test it. Seems like only 1000 bytes would be read from the file, rather than the entire file?
The builtin ?open? function is defined in the io streams module. I presume the builtin open(?file?, ?r?) returns an io.TextIOWrapper object. And maybe the readlines method just isn?t documented?
Just curious and lazy.