Python - watchdog czyli obserwowanie folderów i plików pod względem zachodzących zmian
Stronę tą wyświetlono już: 3145 razy
Biblioteka watchdog umożliwia obserwowanie pliku lub folderu pod względem zachodzących zmian. A zmiany te mogą być różne, np. nadpisanie zawartości pliku, zmiana nazwy pliku, usunięcie pliku lub folderu. Wszystkie te operacje mogą być monitorowane za pomocą watchdog-a. Coby zbyt dużo nie przynudzać oto jak można prosto doinstalować tą bibliotekę:
pip3 install watchdog
W wyniku czego powinno wyświetlić się mniej więcej coś takiego:
Collecting watchdog Downloading watchdog-0.8.3.tar.gz (83kB) Collecting PyYAML>=3.10 (from watchdog) Downloading PyYAML-3.12-cp34-cp34m-win_amd64.whl (195kB) Collecting argh>=0.24.1 (from watchdog) Downloading argh-0.26.2-py2.py3-none-any.whl Collecting pathtools>=0.1.1 (from watchdog) Downloading pathtools-0.1.2.tar.gz Installing collected packages: PyYAML, argh, pathtools, watchdog Running setup.py install for pathtools: started Running setup.py install for pathtools: finished with status 'done' Running setup.py install for watchdog: started Running setup.py install for watchdog: finished with status 'done' Successfully installed PyYAML-3.12 argh-0.26.2 pathtools-0.1.2 watchdog-0.8.3
Powyższa instalacja dotyczy Windowsa, aczkolwiek nie różni się ona zbytnio od instalacji na Linkux-ie.
Oto przykład z strony pypi.python.org pokazujący w jaki sposób można wykorzystać watchdog-a do obserwacji folderu:
- import sys
- import time
- import logging
- from watchdog.observers import Observer
- from watchdog.events import LoggingEventHandler
- if __name__ == "__main__":
- logging.basicConfig(level=logging.INFO,
- format='%(asctime)s - %(message)s',
- datefmt='%Y-%m-%d %H:%M:%S')
- path = sys.argv[1] if len(sys.argv) > 1 else '.'
- event_handler = LoggingEventHandler()
- observer = Observer()
- observer.schedule(event_handler, path, recursive=True)
- observer.start()
- try:
- while True:
- time.sleep(1)
- except KeyboardInterrupt:
- observer.stop()
- observer.join()
Przykład działania:
2017-03-27 13:04:37 - Created file: .car.py 2017-03-27 13:04:37 - Modified file: .car.py 2017-03-27 13:04:37 - Modified file: .car.py 2017-03-27 13:05:16 - Moved file: from .car.py to .car2.py 2017-03-27 13:05:16 - Modified file: .car2.py

Tytuł:
Python w zadaniach. Programowanie dla młodzieży. Poziom podstawowy
Autor:
Urszula Wiejak, Adrian Wojciechowski

Tytuł:
Python i praca z danymi. Przetwarzanie, analiza, modelowanie i wizualizacja. Wydanie III
Autor:
Avinash Navlani, Armando Fandango, Ivan Idris

Tytuł:
Black Hat Python. Język Python dla hakerów i pentesterów. Wydanie II
Autor:
Justin Seitz, Tim Arnold

Tytuł:
Python z życia wzięty. Rozwiązywanie problemów za pomocą kilku linii kodu
Autor:
Lee Vaughan

Tytuł:
Python dla nastolatków. Projekty graficzne z Python Turtle
Autor:
Krzysztof Łos

Tytuł:
Python i Excel. Nowoczesne środowisko do automatyzacji i analizy danych
Autor:
Felix Zumstein

Tytuł:
Python dla testera
Autor:
Piotr Wróblewski

Tytuł:
Python 3. Projekty dla początkujących i pasjonatów
Autor:
Adam Jurkiewicz

Tytuł:
Machine learning, Python i data science. Wprowadzenie
Autor:
Andreas C. Müller, Sarah Guido

Tytuł:
Python na maturze. Rozwiązania i analiza wybranych zadań programistycznych
Autor:
Roland Zimek