Seite 1 von 1
Warten solange..
Verfasst: Donnerstag 19. Januar 2017, 22:35
von pychart
Guten Abend,
wie kann mein py Programm warten, solange etwas bestimmtes geschieht.
zB. Soll mir das Programm mitteilen, wenn eine Datei auf dem Desktop ist, aber wenn die Datei nicht auf dem Desktop ist, soll sie warten, bis die Datei vorhanden ist und mir dann das mitteilen.
warte solange Datei vorhanden und print("Datei vorhanden")
Danke im Voraus!
Gruß
pychart
Re: Warten solange..
Verfasst: Donnerstag 19. Januar 2017, 23:06
von BlackJack
@pychart: Entweder Du prüfst regelmässig ob die Datei vorhanden ist, oder Du verwendest die API Deines Betriebssystems die für Benachrichtigungen bei Verzeichnis- und Dateiänderungen zuständig ist. Unter Linux wäre das beispielsweise die inotify-API, und da gibt's auch Python-Module für.
Re: Warten solange..
Verfasst: Donnerstag 19. Januar 2017, 23:33
von snafu
Wahrscheinlich ein Fall für
watchdog. Aus der Doku auf PyPI:
Supported Platforms
* Linux 2.6 (inotify)
* Mac OS X (FSEvents, kqueue)
* FreeBSD/BSD (kqueue)
* Windows (ReadDirectoryChangesW with I/O completion ports; ReadDirectoryChangesW worker threads)
* OS-independent (polling the disk for directory snapshots and comparing them periodically; slow and not recommended)
Re: Warten solange..
Verfasst: Freitag 20. Januar 2017, 22:35
von pychart
Der Code soll quasi ausgeführt werden, wenn mein USB-Stick angeschlossen ist. Ist watchdog da wirklich geeignet?
@BlackJack, was du meinst, weiß ich jetzt nicht ganz genau, könntest du es vielleicht näher erläutern, bitte?
Habe es mit einer Directory Überprüfung (isdir) gemacht, aber der stoppt den Code nach der Überprüfung..
Danke und lieben Gruß
pychart
Re: Warten solange..
Verfasst: Freitag 20. Januar 2017, 23:12
von snafu
Für welches Betriebssystem benötigst du es denn?
Re: Warten solange..
Verfasst: Samstag 21. Januar 2017, 00:14
von pyHoax
Der Code soll quasi ausgeführt werden, wenn mein USB-Stick angeschlossen ist. I
Unter Linux kann an das mit udev trriggern. (Stichwort udev/rules.d)
Re: Warten solange..
Verfasst: Samstag 21. Januar 2017, 00:31
von BlackJack
@pychart: Was genau soll ich denn da näher erläutern? Code der regelmässig prüft ob eine Datei oder ein Verzeichnis vorhanden ist? Eine Bibliothek wie `inotify` oder eben was für's Betriebssystem das Du verwendest, oder etwas wie `watchdog`?
Falls es tatsächlich um USB-Stick anstecken geht, dann wäre unter Linux tatsächlich `udev` eine Möglichkeit. Vielleicht gibt's so eine API in der Richtung auch bei anderen Betriebssystemen. Unter Linux wäre ausserdem noch DBus eine Möglichkeit, falls dort ein Dienst läuft der solche Ereignisse ankündigt.
Re: Warten solange..
Verfasst: Samstag 21. Januar 2017, 17:15
von pychart
Bräuchte es unter Windows...
Sprich solang USB nicht drinnen, dann soll es warten bis USB drinnen ist und dann den Code ausführen bzw. USB drinnen heißt => H:\* existiert.
*je nachdem Welcher Buchstabe
Gruß