file.read()に関する Python ドキュメントには、次An empty string is returned when EOF is encountered immediately.
のように記載されています。
このメソッドは、可能な限り size バイトに近い値を取得するために、基礎となる C 関数 fread() を複数回呼び出す場合があることに注意してください。また、ノンブロッキング モードの場合、サイズ パラメータが指定されていなくても、要求されたよりも少ないデータが返される可能性があることに注意してください。
Guido は f.eof() PERFECTLY CLEARを追加しないという見解を示したので、Python の方法を使用する必要があると思います!
しかし、私には明確ではありませんが、読み取りから要求されたバイトよりも少ないバイト数を受信した場合に EOF に達したという決定的なテストであるが、いくつかは受信したかどうかです。
すなわち:
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???
break
への呼び出しで要求されたバイトよりも少ないバイト数を受け取った場合、潜在的なエラーfile.read(size)
ですか?