ザPythonのドキュメントfile.read()状態An empty string is returned when EOF is encountered immediately.
そのドキュメントさらに状態に関する:この方法は、C関数のfread()より の根底 を呼び出すことがパイソンEOF()
注できるだけサイズのバイトに近い として取得するために1回以上。また、 が指定されていない場合でも、ノンブロッキングモードでは、 よりも少ないデータが返される可能性があります。 が返されることに注意してください。
私はGuidoがf.eof()を追加しないと考えていると信じています。PERFECTLY CLEARだから、Pythonの方法を使う必要があります!
しかし、私には分かりませんが、読んでから要求されたバイト数よりも少ないバイト数を受け取ったにもかかわらず、それを受け取った場合、EOFに達しているという確定テストです。
すなわち:あなたはfile.read(size)
の呼び出しで要求バイト未満を受信した場合
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
への潜在的なエラーですか?ここで
"バイナリモードでは\ r \ n" < - これは "バイナリモード"ではなく "テキストモード"であるべきですか?バイナリモードでは、それはちょうど他のようなバイトのペアだろうか? –