問題タブ [python-watchdog]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - os.system() で Python ウォッチドッグが永遠にループする
変更のたびにラテックス ドキュメントを自動的にコンパイルする使い捨てスクリプトを作成しようとしています。
関連するコード:
os.system(...) 行を追加するとすぐに、 on_modified() メソッドがトリガー後に永遠にループし始めます。on_modified() が 1 回だけ呼び出されるようにするために、os.system() の呼び出しを省略しました。イベントを説明する 1 行だけが表示されます。
それで、何がうまくいかないのですか?
python - このウォッチドッグ スクリプトがホーム フォルダーで機能しないのはなぜですか?
特定のフォルダーの変更を監視するための python スクリプトを作成しています。
問題は、ファイルの作成と変更がプロセス機能をまったくトリガーしないことですが、変更するarg = "/tmp/somefolder"
と完全に機能します。私は今とても混乱しています。
フォルダの権限:
python - ウォッチドッグの互換性: 「CancelIoEx」の回避策
Pythonウォッチドッグファイル システム イベント ウォッチング ライブラリを使用すると、Windows Server 2003 で使用すると「ポーリング モード」になり、非同期 OS 通知の使用が停止し、大量のファイル変更が行われるとシステム パフォーマンスが大幅に低下することに気付きました。
ユーザーが監視対象のディレクトリまたはファイルの監視を停止したい場合に、コール ロックを停止するためにシステム コールが使用されるwatchdog/observers/winapi.py
ファイルまで問題を追跡しました。CancelIoEx
ReadDirectoryChangesW
(winapi.py)
呼び出しの問題CancelIoEx
は、Windows Server 2008 まで利用できないことです:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363792(v=vs.85).aspx
考えられる代替手段の 1 つはclose_directory_handle
、監視対象のディレクトリ内にモック ファイルを作成するように変更することです。これReadDirectoryChangesW
により、返されるのを待っているスレッドのロックが解除されます。
CancelIo
しかし、システム コールがWindows Server 2003で実際に利用できることに気付きました。
指定されたファイルの呼び出しスレッドによって発行された、保留中のすべての入出力 (I/O) 操作を取り消します。この関数は、他のスレッドがファイル ハンドルに対して発行する I/O 操作をキャンセルしません。別のスレッドからの I/O 操作をキャンセルするには、CancelIoEx 関数を使用します。
ただし、呼び出しCancelIo
は待機中のスレッドには影響しません。
この問題を解決する方法について何か考えはありますか? これらのハンドラーから呼び出される各threading.enumerate()
スレッドによって処理されるシグナルを発行するために使用できますか?CancelIo
python - Pythonで同じクラス内の別のメソッドから1つのメソッドを呼び出す
私はpythonが初めてです。クラス内のあるメソッドから別のメソッドに値を渡そうとしました。問題について検索しましたが、適切な解決策を得ることができませんでした。私のコードでは、「if」はクラスのメソッド「on_any_event」を呼び出しており、その代わりに「on_any_event」の値を利用する別のメソッド「dropbox_fn」を呼び出す必要があるためです。「dropbox_fn」メソッドがクラスの外にある場合、機能しますか?
コードで説明します。
ここでの主な問題は.. イベント パラメータなしで "on_any_event" メソッドを呼び出すことはできません。したがって、値を返すのではなく、「on_any_event」内で「dropbox_fn」を呼び出す方が良い方法です。誰かがこれを手伝ってくれますか?
python-3.x - Python ウォッチドッグ - 未解決のインポート エラー
私は python が初めてで、システム上の特定のフォルダーを監視してイベントを追跡するウォッチドッグ コードを実行しようとしています。ただし、次の行でエラー (「未解決のインポート」) が引き続き発生します。
ウォッチドッグを適切にインストールしました。ただし、システムのパスに環境変数を含めるか変更を加えるか、Eclipse の pydev プロジェクトの pythonpath に外部ライブラリを含めるかどうかを知りたいです。
これらのインポートを使用するコードを以下に示します。
「オブザーバー」のインポートがクラスの前にあり、「if」がプログラムの最後にあるため、問題になりますか? 誰かがこの問題を解決するのを手伝ってください。
python - fsevents キューのステップをスキップする
現在、fsevents を使用してフォルダーを監視しています。ファイルが追加されるたびに、このファイルに対してコードが実行されます。毎秒新しいファイルがフォルダーに追加されます。
これは非常にうまく機能します。唯一の問題は、ライブラリがフォルダーに追加されたすべてのファイルのキューを作成していることです。file_event_callback 内で実行されるコードは、1 秒以上かかる場合があります。その場合、キュー内の他のアイテムはスキップして、最新のものだけが使用されるようにする必要があります。
最後のアイテムの後に使用されるフォルダーへの最新の追加のみが終了するように、キューからアイテムをスキップするにはどうすればよいですか?
最初にウォッチドッグを使用してみましたが、これは Mac で実行する必要があるため、思いどおりに動作させるのに苦労しました。