docs El pitón en file.read() estado que An empty string is returned when EOF is encountered immediately.
La documentación afirma además:EOF Python para solicitudes múltiples bytes de file.read()
Tenga en cuenta que este método puede llamar a la función C subyacente fread() más de una vez en un esfuerzo por adquirir como cerca de bytes de tamaño como sea posible. También tenga en cuenta que cuando se encuentre en modo sin bloqueo, menos datos que los solicitados pueden ser devueltos, incluso si no se proporcionó el parámetro de tamaño .
Creo que Guido ha hecho su punto de vista sobre no agregar f.eof() PERFECTLY CLEAR así que es necesario usar la forma de Python!
Lo que no está claro para mí, sin embargo, es si es una prueba definitiva que ha llegado a EOF si recibe menos de los bytes solicitados de una lectura, pero recibió algunos.
es decir:
with open(filename,'rb') as f:
while True:
s=f.read(size)
l=len(s)
if l==0:
break # it is clear that this is EOF...
if l<size:
break # ? Is receiving less than the request EOF???
¿Es un error potencial de break
si ha recibido menos de los bytes requerida en una llamada a file.read(size)
?
"como \ r \ n en modo binario" <- ¿debería haber dicho "modo de texto" en lugar de "modo binario"? En modo binario, sería un par de bytes como cualquier otro, ¿verdad? –