Python EOF pour multi-octets demandes de fichier.lire()

Le Python docs sur fichier.lire() état que An empty string is returned when EOF is encountered immediately. La documentation stipule en outre:

Noter que cette méthode peut appeler la
C sous-jacente de la fonction fread() plus
fois, dans un effort pour acquérir
près de la taille octets que possible. Aussi
notez qu'en mode sans blocage,
moins de données que ce qui était demandé peut être
renvoyé, même si aucun paramètre de taille
a été donné.

Je crois que Guido a fait son point de vue sur les pas de l'ajout de f.eof() PARFAITEMENT CLAIR donc besoin d'utiliser le Python!

Ce n'est pas clair pour MOI, cependant, est de savoir si c'est un test définitif que vous avez atteint EOF si vous recevez moins de la demande d'octets à partir d'une lecture, mais vous avez reçu certains.

ie:

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???

Est-il un potentiel d'erreur de break si vous avez reçu moins de les octets demandés dans un appel à file.read(size)?

OriginalL'auteur dawg | 2010-12-13