問題タブ [pyinotify]
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.
inotify - pyinotify による時期尚早の IN_CLOSE_WRITE 通知
次の状況が発生しています。
- pyinotify はファイルの IN_CLOSE_WRITE イベントを監視します
- ファイル内の何かを変更して保存します
- イベントがトリガーされます
- ファイルを読んで、変更がないことを確認しました
これを少しいじってみると、デバッグ中にうまく機能することに気付きました。ファイルを読み取る行にブレークポイントを設定して、少し遅延を追加しました。その後、ファイルが読み込まれ、変更が反映されます。
したがって、を追加するtime.sleep(1)
か、他の方法で実行を遅らせるとうまくいくようです。そうしないと、時期尚早の IN_CLOSE_WRITE イベントを受け取ります。
変更がコミットされてファイルが閉じられた後、またはその前にイベントがトリガーされるかどうか疑問に思いました。IN_CLOSE_WRITE の後、他に関連するイベントはないようです。同時に、ドキュメントは少しトリッキーです。
IN_CLOSE_WRITE を使用します。適切なファイルのすべての変更が発行された場合、ファイル内に安全に書き込まれるためです。
FAQ の文言についてバグ レポートを提出しましたが、それまでの間、この問題について追加の意見を求めたいと思います。これは起こるはずですか?それを解決する「道徳的に正しい」方法は何ですか?
これはすべて、Linux Mint 15 x64 で発生しています。
python - FTP 経由の Python inotify (pyinotify)
を介してリモート サーバーのファイル イベントをリッスンする必要がありますFTP
。pyinotify
でファイルの変更を検出することがわかりましたPython
。ローカルファイルシステムでうまく検出され、非常に優れていると思います.
しかし、FTP
監視するためにアドレスを指定すると、適切なパスが表示されず、次のようになります。
url も試しましftp://myuser@myserver
たが、結果は同じでした。
それで、何が欠けてpyinotify
いるのですか、pyinotifyでFTP経由でファイルの変更をリッスンできますか
利用できない場合は、これを行う別のライブラリを提案できますか?
ありがとうございました
python - pyinotify は現在のディレクトリを監視できません
ホーム ディレクトリ (/home/name) の下に pyinotify を使用してスクリプトを配置し、実行します。スクリプトにホーム ディレクトリ (/home/name) またはルート (/) や /home/ などのホーム ディレクトリを含むディレクトリを監視させることはできません。/var、/boot、/home/name/Documents など、他のディレクトリはすべて問題ありません。
きれいな方法で説明しましょう。
脚本:
python - テンプレートが変更されたときに pserve をリロードするにはどうすればよいですか?
pserve --reload は Python の変更に対応していますが、テンプレートを変更するときは手動でリロードする必要があります。
テンプレート フォルダの変更を監視するこの小さなスクリプトを作成しましたが、pserve をリロードするコマンドは何ですか? Pyramids プロジェクト内からinit .py などで pserve メソッドを呼び出す必要がある場合、pserve をリロードするために呼び出すメソッドは何ですか?
python - ファイルの変更を表示する方法はありますか (たとえば、pyinotify を使用)?
監視されたファイルの変更を印刷する方法はありますか? 例を見てみましょう: 私は file.txt を監視しています。私が間違っている ?監視しているファイルに加えられた変更を確認するにはどうすればよいですか?
よろしくお願いします。下手な英語で申し訳ありません。
python - python pyinotify は os.listdir() または glob.glob() では機能しません
新しく挿入された USB メモリ スティックのファイルの内容に基づいて、自動的にリストを作成する簡単なソフトウェアを作成しようとしています。
ubuntu 14.04を使用しています。
os.listdir() と glob.glob() を使用すると、単独で正常に動作するようになりました...
ただし、pyinotify で使用し、event.pathname から os.listdir() または glob.glob() の input_dir を取得すると、毎回空のリストが表示されます...
文字列を連結して、一重引用符、二重引用符などを追加しようとしましたが、役に立ちませんでした。
ここにコードのスニペットがあります
python - Python で IRC ログ ファイルを検索して、COMPLETE という語句を含む最後の行を探します。
現在、pyinotify を使用して irssi (Linux コマンド ライン用の irc クライアント) ログ ファイルを監視しています。このログ ファイルは、pyinotify の IN_MODIFY マスクを使用して irssi によって書き込まれます。変更されましたが、行で特定のフレーズを見つけようとしています。この行では、フレーズは次のとおりです。
これで、最後の行をチェックしてそこにあるかどうかを確認するコードがありますが、ボットの読み取りのためにすべてが一度に読み込まれるため、irssi がログファイルにチャンクで書き込むことがあります。このコードは正常に動作します。私が問題を抱えているのは、COMPLETE: 句が含まれる一番下に最も近い最後の行を見つけることです。
私はおそらく間違っていることを知っていますが、私が思いついた方法(そしてそれは機能しないので、私は間違っています)は、最後の COMPLETE: 行を保存し、その行を検索し、ループを列挙することです最後の行が見つかった行番号のオフセットでファイルを上書きし、その後の各完全な行を処理します。以下はコードです。誰かがアイデアを持っている場合、またはこれを行うためのより良い方法がある場合は、大歓迎です!
編集:
self.extractdata は、取得している行の特定の部分を正規表現する関数であり、行は getlastline 関数から self.extractdata に送信され、self.setlast はテストのために self.lastline と print の何かを設定するだけです。
python - セロリの自動リロードが機能しない
Celery 3.1.16 ブローカー (RabbitMQ を実行) と、スーパーバイザーによってデーモン化された celeryd を持つ複数の Celery ワーカーを使用しています。問題はタスクの更新にあります。tasks.py ファイルを更新すると、セロリ ワーカーが古いコードを実行します。
セロリ起動コマンド:
django settings.py にタスク ファイルを含めます。
pyinotifyがインストールされ、動作します (そうだと思います)、セロリ ログの一部:
それで、私の質問:変更された場合、セロリの更新を取得して新しいタスクコードを適用する方法は?
django - mod_wsgi と django で Apache を 1 つのプロセスだけで実行する方法は?
2つの異なるプロセスでdjangoとmod_wsgiを有効にしてApacheを実行しています。
2 番目のプロセスは、変更時にコードをリロードするための変更時リスナーであると読みましたが、何らかの理由でクラスのready()
関数が2 回実行されています。AppConfig
この関数は 1 回だけ実行する必要があります。
フラグを指定して django runserver を実行--noreload
すると開発モードで問題が解決することは理解しましたが、Apache Web サーバーのプロダクション モードでは解決策が見つかりません。
2 つの質問があります。
本番環境で 1 つのプロセスのみで実行する方法、または少なくとも 1 つのプロセスのみで
ready()
関数を実行する方法を教えてください。ready()
関数を遅延モードで実行しないようにする方法はありますか? これは、最初のリクエストではなく、サーバーの起動時にのみ実行することを意味します。
さらに説明すると、次のようなシナリオが発生しています。このready()
関数は、のようなフォルダー リスナーを作成しますpyinotify
。そのリスナーは、サーバー上のフォルダーをリッスンし、変更があるとタスクをキューに入れます。監視対象ディレクトリ内の 1 つのファイルが変更されると、このリスナーが 2 回実行されます。これにより、両方のプロセスがリスナーを実行していると思います。