Python-USB-Erkennung


Zuerst entschuldige mein Englisch!

meine Umgebung:
Python: 2.7.3
wxwidgets: 2.9.4-1
wxpython: 2.9.4-1
Ubuntu: 12.04

Kontext:
Ich muss feststellen, ob eine USB-Festplatte angeschlossen oder nicht angeschlossen ist, und entsprechende Maßnahmen ergreifen.
Wenn zum Beispiel eine Festplatte eingesteckt ist, möchte ich den Mount-Punkt (zB: / media / usb0) und den System-Punkt (zB: / dev / sdb1) erhalten. Ich brauche beide Pfade und möchte keinen Systemaufruf wie (Unterprozess: mount -l) machen.

Ich habe verschiedene Möglichkeiten ausprobiert:
- pyudev: erhalte nur den Systempfad auf EVT_DEVICE_ADDED (wie / dev / sdb1)
- Gio (gi.repository): Hole den Mount-Punkt mit 'mount-added' (wie / media / usb0) und den Systempunkt in einem zweiten Ereignis mit 'volume-added', aber ich habe Probleme mit dem Hinzufügen und Entfernen von Gio-Ereignissen oder Verdächtiges Verhalten hängt vom Computer ab, auf dem ich meine Anwendung ausprobiert habe
- DBusGMainLoop (dbus.mainloop.glib): Funktioniert, hängt aber vom Computer ab, den ich ausprobiert habe (alle mit derselben Konfiguration). Starten Sie 2-Ereignis 'DeviceAdded' und manchmal ein DeviceChanged, manchmal aber nicht, wenn eine Festplatte angeschlossen ist.

Kennen Sie eine Möglichkeit (vielleicht eine der 3, die ich ausgesetzt habe, ich habe etwas Schlimmes getan), um zu erkennen, wenn eine USB-Festplatte angeschlossen ist, eine Methode aufzurufen und in dieser Methode den 2-Pfad zu erhalten, den ich brauche?

Danke im Voraus.

Aurélien.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage