Descargue las primeras N filas del archivo de texto en ftp con ftplib.retrlines

Necesito acceder a un servidor ftp desde Python y descargar las primeras N filas de un archivo de texto específico.

Leí acerca de ftplib y las recuperaciones de funciones, pero no entendía cómo recuperar las primeras N líneas solo sin descargar todo el archivo (Sin embargo, me pregunto si eso es posible en el protocolo ftp)

Puedes abortar la descarga del archivo lanzando una excepción.

Aunque entonces tienes que hacer explícitamente una limpieza que, de lo contrario, sería realizada por los retrlines .

 c = 1 class TooManyLines(Exception): pass contents = "" def collectLines(s): global contents, c contents += s + "\n" c += 1 if c == 5: raise TooManyLines() try: ftp.retrlines("RETR /path/file.txt", collectLines) except TooManyLines: # read/skip response ftp.getmultiline() 

Más limpio sería copiar sobre la implementación de retrlines y modificarla según sea necesario.