次の状況が発生しています。
- pyinotify はファイルの IN_CLOSE_WRITE イベントを監視します
- ファイル内の何かを変更して保存します
- イベントがトリガーされます
- ファイルを読んで、変更がないことを確認しました
これを少しいじってみると、デバッグ中にうまく機能することに気付きました。ファイルを読み取る行にブレークポイントを設定して、少し遅延を追加しました。その後、ファイルが読み込まれ、変更が反映されます。
したがって、を追加するtime.sleep(1)
か、他の方法で実行を遅らせるとうまくいくようです。そうしないと、時期尚早の IN_CLOSE_WRITE イベントを受け取ります。
変更がコミットされてファイルが閉じられた後、またはその前にイベントがトリガーされるかどうか疑問に思いました。IN_CLOSE_WRITE の後、他に関連するイベントはないようです。同時に、ドキュメントは少しトリッキーです。
IN_CLOSE_WRITE を使用します。適切なファイルのすべての変更が発行された場合、ファイル内に安全に書き込まれるためです。
FAQ の文言についてバグ レポートを提出しましたが、それまでの間、この問題について追加の意見を求めたいと思います。これは起こるはずですか?それを解決する「道徳的に正しい」方法は何ですか?
これはすべて、Linux Mint 15 x64 で発生しています。