Given a large file (hundreds of MB) how would I use Python to quickly read the content between a specific start and end index within the file?
Essentially, I'm looking for a more efficient way of doing:
open(filename).read()[start_index:end_index]
解决方案
You can seek into the file the file and then read a certain amount from there. Seek allows you to get to a specific offset within a file, and then you can limit your read to only the number of bytes in that range.
with open(filename) as fin:
fin.seek(start_index)
data = fin.read(end_index - start_index)
That will only read that data that you're looking for.