2009-02-28 18 views
49

मैं एक क्रॉस-प्लेटफार्म फ़ाइल निगरानी पायथन पैकेज की तलाश में हूं? मुझे पता है कि pywin32 का उपयोग कर विंडोज़ पर फ़ाइलों की निगरानी करना संभव है, और लिनक्स/यूनिक्स पर काम कर रहे पैकेज हैं लेकिन क्या किसी को क्रॉस प्लेटफार्म के बारे में पता है?फाइलों/निर्देशिकाओं की निगरानी सामग्री?

+1

टिम गोल्डन मतदान एक निर्देशिका का एक बहुत ही सरल पार मंच विधि है के साथ प्रयोग किया गया था os.listdir के साथ यहां: http://timgolden.me.uk/python/win32_how_do_i/watch_directory_for_changes.html – bernie

+2

"मॉनिटर" का क्या अर्थ है? कृपया कुछ संकेत दें कि आप क्या करने की कोशिश कर रहे हैं। –

उत्तर

29

यूनिक्स/लिनक्स आधारित सिस्टम के लिए, आपको File Alteration Monitor Python bindings से libfam का उपयोग करना चाहिए।

विंडोज आधारित सिस्टम के लिए, आपको Win32 API FindFirstChangeNotification और संबंधित कार्यों में जोड़ना चाहिए।

एक क्रॉस प्लेटफॉर्म के रास्ते के रूप में, मुझे एक अच्छा क्रॉस प्लेटफ़ॉर्म तरीका नहीं पता है। मुझे लगता है कि एक मॉड्यूल बनाने के लिए सबसे अच्छा होगा जो कि ओएस पर काम करता है जो यह पता लगाने के बाद 2 उपरोक्त तरीकों में से एक का उपयोग करता है।

+1

क्या आप व्याख्या कर सकते हैं कि उदाहरण में W32 API का उपयोग कैसे करें ... क्योंकि मुझे यह नहीं मिलता है ... – wishi

2

मुझे यह लिंक मिला, जो आपकी समस्या के बारे में बात करता है। हालांकि यह वास्तव में समाधान/पुस्तकालय प्रदान नहीं करता है, मुझे लगता है कि इससे मदद मिलेगी। http://www.stepthreeprofit.com/2008/06/cross-platform-monitoring-of-filesystem.html

मुझे नहीं लगता कि अभी तक एक क्रॉस-प्लेटफ़ॉर्म है, इसलिए आप अपना खुद का रोल करना चाहेंगे।

मैं इस क्षेत्र में अनुभवहीन हूं इसलिए मुझे सच में यकीन नहीं है। आशा है कि ये आपकी मदद करेगा।

नोट
मैं ठीक किया मानी, परित्यक्त बालक के रूप में एडम बर्नियर ने एक टिप्पणी में मेरे लिए कहा cygwin पर उपलब्ध है। आप साइगविन पर अन्य विकल्पों का शोध करना चाह सकते हैं (यदि वे मौजूद हैं)।

+0

लिनक्स पर गैमिन के लिए कुछ अच्छी प्रतिक्रिया माना जाता है। एफडब्ल्यूआईडब्ल्यू, गैमिन साइगविन पैकेज में सूचीबद्ध है: http://cygwin.com/packages/ – bernie

+0

आह! cygwin! मैंने इसके बारे में नहीं सोचा था। मुझे सही साबित होना है। – batbrat

0

लिनक्स पर सबसे आसान तरीका inotifywait का उपयोग करना है (यह देखते हुए कि आपका कर्नेल हाल ही में पर्याप्त है)। आपको किसी भी विशेष बाइंडिंग की आवश्यकता नहीं है, किसी भी तरह से मानक आउटपुट पर आउटपुट लाइनों को मुद्रित करने के लिए inotifywait को अनुकूलित किया जा सकता है। एक अच्छे उदाहरण के लिए देखो और this question

+0

उन्होंने विशेष रूप से क्रॉस प्लेटफ़ॉर्म का उल्लेख किया।inotifywait केवल लिनक्स –

81

मैं एक एमआईटी-लाइसेंसीकृत लाइब्रेरी पर काम कर रहा हूं जो पाइथन प्रोग्रामों को फ़ाइल सिस्टम घटनाओं को यथासंभव पोर्टेबल में मदद करता है। ऐसे मतभेद हैं जिन्हें मैं लोहे से बाहर करने की कोशिश कर रहा हूं। इस समय अत्यधिक अल्फा संस्करण:

यहाँ देखें: http://github.com/gorakhargosh/watchdog/

पैच और योगदान का स्वागत है।

उम्मीद है कि यह मदद करता है। =) चीयर्स।

+0

के लिए है धन्यवाद, मैं एक क्रॉस प्लेटफॉर्म समाधान की तलाश में था और वॉचडॉग वास्तव में सहायक है! – mtrovo

+0

यह Python3 के लिए कब उपलब्ध होगा? – avendael

+3

@avendael - अब जाहिर है। यह इस बिंदु पर py3k का समर्थन करता है। –

4

इसके अलावा इस विकल्प की जाँच:

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

विंडोज पर एक पार मंच अनुप्रयोग और ओएस एक्स

+3

संभवतः क्योंकि वॉचडॉग के लेखक पोस्ट किए गए हैं एक साल पहले इसके जवाब में और इस प्रतिक्रिया में ज्यादा कुछ नहीं है? शायद डाउनवोट के लायक नहीं है, लेकिन एक अपवर्तनीय मूल्य के लायक नहीं है। – fencepost

+1

मुझे यह पसंद है क्योंकि उसने कहा था कि उसने इसका इस्तेमाल किया है और यह ठीक है। – droope

+0

मुझे यह कभी नहीं मिला कि एक जवाब क्यों कम हो गया। वॉचडॉग का उपयोग यहां दिया गया है: http://pythonhosted.org/watchdog/quickstart.html – swdev

संबंधित मुद्दे