1

非常に厄介なスクリプトで、ようやく機能するようになりました。実際には、シーカーのバランスを取り直さなければなりませんでした

f.seek(0, 1)

f.write() 関数が「スタック」したものを書き込む前に。つまり、これを回避するために非常に多くの方法を試しましたが、機能したのは上記の単純な行だけでした。

当然、書き込みの前後に f.tell() でポインターをチェックしました-同一です!

このスクリプトには Python 2.7.3 を使用しています。これはバグでしょうか?私はこれを使うのにうんざりしています.

4

1 に答える 1

2

奇妙に聞こえます。頭に浮かぶ唯一の説明は、バッファリングの影響を考慮していないということです。

具体的には、ファイルに何かを書き込む場合、最初に内部バッファーに書き込まれます。バッファーの内容は、次の場合にファイルに書き込まれます。

  • バッファがいっぱいです。また
  • ファイルは閉じられています。また
  • f.flush()呼び出されます。また
  • f.seek()と呼ばれます。

したがって、ファイルに少しデータを書き込んだ後、上記のいずれかが発生する前にファイルの内容を調べた場合、新しく書き込まれたデータが表示されないことがよくあります。

于 2013-03-12T07:21:11.937 に答える