0

私は、Python が常にファイルへの書き込みを終了した場所を記憶し、その時点から継続していることに気付きました。ファイルが別のプログラムによって編集され、特定のテキストと広告が削除された場合、別の python が次の書き込み時にギャップを NULL で埋めないようにリセットする方法はありますか?

私は親でファイルを開いており、スレッド化された子がそれに書き込んでいます。フラッシュを使用して、書き込み後にデータが物理的にファイルに書き込まれるようにしましたが、それはそれを行うのに適しています。

Pythonを適切に追加する、見逃していると思われる別の機能はありますか?

4

1 に答える 1

1

OSに依存せず、信頼できる1つの安全なことは、ファイルを閉じて、書き込み時に再度開くことです。

それによるパフォーマンスの低下が許容できない場合は、「シーク」を使用して、書き込む前にファイルの最後に移動してみてください。インタラクティブ コンソールで単純なテストを行ったところ、実際file.seek(0, os.SEEK_END)に書き込み前の使用が機能しました。

2 つのプロセスが同じファイルに書き込むことは、ほとんどの状況で安全であるとは思いません。これを行うと、ある種の競合状態に陥ります。1 つの方法は、ファイル ロックを実装して、1 つのプロセスがロックを取得した後にファイルに書き込むことです。これを正しいwyaで行うことは考えられるかもしれません。そのため、SQL エンジン (MySQL または Postgresql) などのさまざまなプロセスによる同時更新を可能にするために、何年にもわたって慎重に構築および強化された書き込みデータに何かを使用して、アプリケーションがより適切な場所にないかどうかを確認してください。

于 2012-10-07T12:31:23.627 に答える