2009-08-26 6 views
0

디렉토리를 지속적으로 모니터링 할 수있는 좋은 모듈이 있는지 알아보고 새 파일이있는 즉시 여러 가지 기능을 사용합니까?파이썬에서 파일 관리를위한 라이브러리/모듈은 무엇입니까?

또한 FTP를 통해 들어오는 일부 전송 파일에는 작업을해서는 안됩니다.

+0

는 아마도 http://stackoverflow.com/questions/597903/monitoring-files-directories-with-python –

답변

0

파일 시스템 이벤트 모듈을 찾고 있습니다.

실행중인 OS는 무엇입니까?

: 당신이 inotify을 사용할 수 있습니다, 리눅스에

  • (면책 조항 나는 그 두 개의 모듈을 유지하고 있습니다). 수은을 넣고 inotify code을보십시오.
  • Mac OS X (> = 10.5)에서는 FSEvents을 사용할 수 있습니다. pyfsevents을 참조하십시오.

다른 대안으로는 pyinotify 또는 gamin을 볼 수 있지만 이러한 모듈을 사용해 본 적이 없습니다.

+0

운영 시스템의 중복 그러나 유닉스 – ismail

+0

일반 작업을 할 수 있어야한다, 리눅스/유닉스입니다 "유닉스"는 그런 기능을 가지고 있지 않다; 특정 유닉스 버전은 종종 그렇지만 어떤 버전 (Solaris, HPUX, BSD, AIX, ...)을 지정해야하며 운이 좋지 않을 수도 있습니다. –

+0

가능성이 HPUX – ismail

0

NicDumZ의 우수한 모듈 외에도 풍부하고 풍부한 문서화 된 대안으로 pyinotify을 고려할 수 있습니다. 나는 Nic이 더 간단하다고 생각한다. (적어도 기초적인 기능에 대해서는) 그러나 나는 자세히 연구하지 않았다. 나는 pyinotify에 익숙하다. BTW, 흥미롭게도, 후자는 순수한 파이썬이다 (ctypes 물론 ;-).

"유닉스에서 작동 할 수 있어야합니다"라고 언급 했으므로 유사한 유닉스 기능을 제공하는지 여부를 지원하고 연구해야하는 유닉스 버전을 정확하게 지정해야합니다. 예를 들어, inotify를이 man page는 말한다 :

inotify를 API는 리눅스 고유의 것입니다. 다른 어떤 시스템은 유사한 메커니즘을 제공합니다. 예를 들어 FreeBSD에는 kqueue가 있고 Solaris에는/dev/poll이 있습니다.

Nic은 이미 MacOSX에서 FSEvents를 언급했습니다. 주어진 관심 시스템, 최악의 경우, 미리 만들어진 Python 버전이 없다면 C 언어를 결정한 후에는 pyotify가 inotify를 수행하는 것과 비슷하게 ctypes을 사용할 수 있습니다. BTW, 완전성을 위해 : Windows에서는 ReadDirectoryChangesW을 사용할 수 있습니다 (일반적으로 ctypes 나 Win32 Extensions의 win32file 파일을 통해 수행 할 수 있습니다).

0

상위 수준 라이브러리는 종종 각 플랫폼에서 서로 다른 솔루션을 구현합니다. 운이 좋으면 하이 레벨 라이브러리 인 하나의 메소드 만 사용해야합니다. 당신은 파이썬 바인딩 QT의 QFileSystemwatcher를 사용할 수 있는지

은, 특히

this non-python Question about file monitoring를 참조하거나 (그냥 리눅스 비록 내가, 내 응용 프로그램에서 사용하는) 입심의 GFileMonitor, 당신은 작업을 저장 할 수 있습니다.

+0

나는 glib의 파일 시스템 코드 ("gio"라고 pygobject의 일부인 python 모듈 "gio"라고도 함)를 파고 있으며 inotify와 win32에 대한 구현이 있고 "fam"는 폴링 폴백 http://git.gnome.org/cgit/glib/tree/gio – u0b34a0f6ae

관련 문제