2008-09-03 7 views
7

Je veux ouvrir une fenêtre de dossier, dans le gestionnaire de fichiers, à partir d'un multi-plateforme (Windows/Mac/Linux) d'application Python.Standard manière d'ouvrir une fenêtre de dossier dans Linux?

Sur Mac OS X, je peux ouvrir une fenêtre dans le viseur avec

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

et sur Windows avec

os.startfile(foldername) 

Qu'en est-unix/linux? Existe-t-il un moyen standard de le faire ou dois-je faire un cas particulier gnome/kde/etc et exécuter manuellement l'application appropriée (nautilus/konqueror/etc)?

Cela ressemble à quelque chose qui pourrait être spécifié par les gens de freedesktop.org (un module python, similaire à webbrowser, serait également agréable!).

Répondre

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

xdg-open peut être utilisé pour les fichiers/urls aussi

+5

il est préférable d'utiliser ''/importation subprocess' subprocess.Popen ([ 'xdg-open', foldername]) ', car cela évite les problèmes citant –

0

cela aurait probablement être fait manuellement, ou avoir comme élément de configuration car il y a beaucoup de gestionnaires de fichiers que les utilisateurs peuvent vouloir utiliser. Fournir un moyen pour les options de commande.

Il pourrait y avoir une fonction qui lance les valeurs par défaut ou gnome dans kde leurs boîtes à outils respectifs, mais je n'ai pas eu raison de les chercher.

0

Vous allez devoir faire sur la base du gestionnaire de fenêtres en cours d'exécution. OSX et Windows ont une manière standard (de facto) car il n'y a qu'un seul choix.

Vous ne devriez pas avoir besoin de spécifier l'application exacte filemanager, cependant, cela devrait être possible de le faire à travers le wm. Je sais que Gnome le fait, et c'est important de le faire dans KDE puisqu'il y a deux gestionnaires de fichiers possibles (Konqueror/Dolphin) qui peuvent être utilisés.

Je suis d'accord que ce serait une bonne chose pour freedesktop.org à normaliser, même si je doute que cela se produira à moins que quelqu'un les étapes et les bénévoles pour le faire.


EDIT: Je n'étais pas au courant de xdg-open. Bon à savoir!

Questions connexes