2009-08-26 9 views
0

ディレクトリを常時監視できる優れたモジュールがあるかどうかを確認しようとしています。新しいファイルがそこに入るとすぐに、多くの機能が導入されていますか?Pythonでのファイル管理用のライブラリ/モジュールはありますか?

また、FTP経由で送信されるファイルの一部を転送しないでください。

+0

おそらくhttp://stackoverflow.com/questions/597903/monitoring-files-directories-with-python –

答えて

0

ファイルシステムイベントモジュールを探しています。

実行中のOSはどれですか?

(免責事項:私は、これらの二つのモジュールを維持しています)Linuxの

  • 、あなたはinotifyを使用することができます。水銀でinotify codeを見てください。
  • Mac OS X(> = 10.5)ではFSEventsを使用できます。 pyfseventsを参照してください。

は、他の選択肢について、あなたはpyinotifyまたはgaminを見ていることができますが、私はそれらのモジュールを試したことがありません。

+0

オペレーティングシステムの複製は、Linux/Unixのある、しかし、UNIX – ismail

+0

ジェネリックで動作することができるはず"unix"にはそのような機能はありません。 (Solaris、HPUX、BSD、AIXなど)のバージョンを指定する必要があります。また、いくつかのバージョンでは不運になる可能性があります。 –

+0

おそらくHPUX – ismail

0

NicDumZの優れたモジュールに加えて、豊富で(豊富に記載された)代替品としてpyinotifyを検討することをお勧めします。私はニックが(少なくとも基本的な機能性については)もっと簡単だと思うが、私はそれを詳細に研究していない - 私は、pyinotifyにもっと精通している。 BTW、興味深いことに、後者は純粋なPython(​​もちろん、;-)です。

"unixで動作するはずです"と述べたので、サポートする必要のあるUNIXバージョンを正確に指定して、類似の機能を提供するかどうかを確認してください。たとえば、inexifyのman pageは、

です。inotify APIはLinux固有のものです。他のシステムでは と同様のメカニズムを提供しています。たとえば、FreeBSDにはkqueueがあり、Solarisには/ dev/pollがあります。

とNicはすでにMacOSXのFSEventsについて言及しています。最悪の場合、あらかじめ作成されたPythonバージョンがない場合、おそらく​​を、pyinotifyがinotifyのやり方と同様に使用することができます。 BTW、完全性のために:WindowsではReadDirectoryChangesWを使用することができます(通常は、ctypesまたはWin32拡張機能のwin32fileファイルを使用して行います)。

0

ハイレベルライブラリでは、多くの場合、それぞれのプラットフォームで異なるソリューションを実装しています。運が良ければ、高水準ライブラリの1つのメソッドだけを使うだけです。

は、あなたがPythonバインディング、または(これは、Linuxのためだけだが、私は、自分のアプリケーションで使用)のGLibのGFileMonitorとQTのQFileSystemwatcherを使用することができれば、あなたが仕事を保存可能性がある、具体的にthis non-python Question about file monitoring

を参照してください。

+0

私はglibのファイルシステムコード( "gio"と呼ばれ、pygobjectの一部であるpythonモジュール "gio"とも呼ばれます)を掘り下げていますし、inotifyとwin32用の実装と "fam"ポーリングのフォールバックhttp://git.gnome.org/cgit/glib/tree/gio – u0b34a0f6ae

1

私はwatchdogと呼ばれるクロスプラットフォームのライブラリを実装しています。 はあなたが探しているものかもしれません。 http://github.com/gorakhargosh/watchdog

HTHから入手できます。 =)

関連する問題