2009-02-28 14 views
49

私はpythonパッケージを監視するクロスプラットフォームのファイルを探していますか? pywin32を使ってWindows上のファイルを監視することは可能で、Linux/Unix上で動作するパッケージはありますが、クロスプラットフォームのパッケージについて知っている人はいますか?ファイル/ディレクトリの内容を監視していますか?

+1

ティムゴールデンポーリングディレクトリの非常にシンプルなクロスプラットフォームのメソッドを持つOS Xに使用されましたここにはos.listdirがあります: http://timgolden.me.uk/python/win32_how_do_i/watch_directory_for_changes.html – bernie

+2

「モニタ」とは何ですか?あなたがしようとしていることについてのヒントを提供してください。 –

答えて

29

UNIX/Linuxベースのシステムでは、File Alteration Monitor Python bindingslibfamを使用する必要があります。

Windowsベースのシステムの場合は、Win32 API FindFirstChangeNotificationと関連する機能を関連付ける必要があります。

クロスプラットフォームの方法については、良いクロスプラットフォームの方法についてはわかりません。私はそれがどのOSであるかを検出した後、上記の2つの方法のいずれかを使用するいずれかのOSで動作するモジュールを自分で構築することが最善であると考えます。

+1

例でW32 APIを使用する方法を説明してもらえますか?私はそれを取得しないため... – wishi

2

私はあなたの問題について語っているこのリンクを見つけました。それは本当にsのソリューション/ライブラリを提供していませんが、私はそれが役立つと思う。 http://www.stepthreeprofit.com/2008/06/cross-platform-monitoring-of-filesystem.html

私はまだクロスプラットフォームのものはないと思うので、自分でロールしたいかもしれません。

私はこの分野では経験の浅いので、私は本当にわかりません。私はこれが役立つことを願っています私は修正スタンド


アダムベルニエはコメントで私に指摘したように、gaminのはcygwinの上で使用可能です。 cygwin上の他のオプションを調べたいかもしれません(存在する場合)。

+0

Linux上のGaminに良いフィードバックがあるようです。 FWIW、Gaminはcygwinパッケージに掲載されています:http://cygwin.com/packages/ – bernie

+0

ああ! cygwin!私はそれを考えなかった。私は訂正した。 – batbrat

0

Linux上で最も簡単な方法は、inotifywaitを使用することです(カーネルが十分最新であることが前提です)。特別なバインディングは必要ありませんが、inotifywaitをカスタマイズして標準出力に出力行を出力することができます。 Lookとthis questionが良い例です。

+0

彼は特にクロスプラットフォームについて言及しました。inotifywaitはLinuxのみです –

81

私は、Python プログラムがファイルシステムイベントを可能な限り移植可能に監視するのに役立つMITライセンスライブラリに取り組んでいます。 私が差し伸べようとしている違いがあります。現時点では非常に アルファ版:

ここでそれをチェックアウト: http://github.com/gorakhargosh/watchdog/

パッチと貢献を歓迎します。

希望します。 =) 乾杯。また

+0

ありがとう、私はクロスプラットフォームのソリューションを探していて、ウォッチドッグは本当に役立ちます! – mtrovo

+0

これはいつPython3で利用できますか? – avendael

+3

@avendael - 今、明らかに。この時点でpy3kをサポートしています。 –

4

このオプションをチェックアウト:

http://pypi.python.org/pypi/watchdog

は、Windows上のクロスプラットフォームのアプリと

+3

おそらくウォッチドッグの投稿者がそれについて1年前に答えてみましたが、この回答にはそれほど多くはありませんか?おそらくダウンボートの価値はないが、アップフォートの価値はあまりない。 – fencepost

+1

私はそれが好きです。なぜなら、彼はそれを使っていると言っていて、それは問題ありません。 – droope

+0

答えが下落したのはなぜなのでしょうか?ウォッチドッグの使い方は次のとおりです:http://pythonhosted.org/watchdog/quickstart.html – swdev

関連する問題