Cómo leer una parte específica de un archivo grande en Python

Dado un archivo grande (cientos de MB), ¿cómo usaría Python para leer rápidamente el contenido entre un índice de inicio y final específico dentro del archivo?

Esencialmente, estoy buscando una manera más eficiente de hacer:

open(filename).read()[start_index:end_index] 

Puede seek en el archivo el archivo y luego leer una cierta cantidad desde allí. La búsqueda le permite obtener un desplazamiento específico dentro de un archivo, y luego puede limitar su lectura solo al número de bytes en ese rango.

 with open(filename) as fin: fin.seek(start_index) data = fin.read(end_index - start_index) 

Eso solo leerá los datos que estás buscando.