2008-09-03 11 views
7

Ich möchte ein Ordner-Fenster in der entsprechenden Datei-Manager aus einer plattformübergreifenden (Windows/Mac/Linux) Python-Anwendung öffnen. Standard Weg, um ein Ordnerfenster in Linux zu öffnen?

Auf OSX, kann ich ein Fenster im Finder öffnen mit

os.system('open "%s"' % foldername) 

und unter Windows mit

os.startfile(foldername) 

Was ist Unix/Linux? Gibt es einen Standard Weg dies zu tun oder muss ich spezielle Fall gnome/kde/etc und manuell die entsprechende Anwendung (nautilus/konqueror/etc) ausführen?

Dies sieht aus wie etwas, das durch die freedesktop.org Leute (ein Python-Modul, ähnlich wie webbrowser, wäre auch nett!) Spezifiziert werden könnte.

Antwort

9
os.system('xdg-open "%s"' % foldername) 

xdg-open können für Dateien/Urls

+5

es ist besser zu verwenden 'Import subprocess' /' subprocess.Popen ([ 'xdg-open', folder]) auch 'verwendet werden, da dies unter Angabe Probleme vermeidet –

0

Dies müsste wahrscheinlich manuell erledigt werden oder als Konfigurationselement, da es viele Dateimanager gibt, die Benutzer verwenden möchten. Bereitstellung einer Möglichkeit für Befehlsoptionen.

Möglicherweise gibt es eine Funktion, die die Standardeinstellungen für kde oder gnome in ihren jeweiligen Toolkits startet, aber ich hatte keinen Grund, nach ihnen zu suchen.

0

Sie müssen dies basierend auf dem Running Window Manager tun. OSX und Windows haben einen (defacto) Standardweg, weil es nur eine Auswahl gibt.

Sie sollten nicht die genaue Dateimanager-Anwendung angeben müssen, obwohl dies über die WM möglich sein sollte. Ich weiß, dass Gnome dies tut, und das ist wichtig in KDE, da es zwei mögliche Dateimanager (Konqueror/Dolphin) gibt, die möglicherweise verwendet werden.

Ich stimme zu, dass dies eine gute Sache für Freedesktop.org zu standardisieren wäre, obwohl ich bezweifle, dass es passieren wird, es sei denn, jemand tritt und Freiwillige, um es zu tun.


EDIT: Ich war nicht bewusst von xdg-open. Gut zu wissen!