2008-09-03 17 views
7

Quiero abrir una ventana de carpeta, en el administrador de archivos apropiado, dentro de una aplicación multiplataforma (Windows/Mac/Linux) Python.¿Forma estándar de abrir una ventana de carpeta en Linux?

en OSX, puedo abrir una ventana en el visor con

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

y en Windows con

os.startfile(foldername) 

¿Qué hay de Unix/Linux? ¿Hay una manera estándar de hacer esto o tengo que hacer un caso especial gnome/kde/etc y ejecutar manualmente la aplicación apropiada (nautilus/konqueror/etc)?

Esto parece algo que podría ser especificado por la gente freedesktop.org (un módulo de Python, similar a webbrowser, también sería bueno!).

Respuesta

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

xdg-open se puede utilizar para archivos/URL también

+5

que es mejor usar '' subprocess' importación/subprocess.Popen ([ 'xdg-abiertos', nombre de carpeta]) 'problemas ya que esto evita que citan –

0

esto probablemente tendría que hacerse manualmente, o tener como un elemento de configuración, ya que hay muchos administradores de archivos que los usuarios pueden desear utilizar. Proporcionando una forma de opciones de comando también.

Puede haber una función que inicie los valores predeterminados para kde o gnome en sus respectivos kits de herramientas, pero no he tenido motivos para buscarlos.

0

Tendrás que hacer esto en función del administrador de la ventana en ejecución. OSX y Windows tienen una forma estándar (de facto) porque solo hay una opción.

No debería necesitar especificar la aplicación exacta del administrador de archivos, sin embargo, esto debería ser posible a través del wm. Sé que Gnome lo hace, y es importante hacerlo en KDE ya que hay dos administradores de archivos posibles (Konqueror/Dolphin) que pueden estar en uso.

Acepto que esto sería bueno para freedesktop.org para estandarizar, aunque dudo que suceda a menos que alguien tome medidas y sea voluntario para hacerlo.


EDITAR: No tenía conocimiento de xdg-open. ¡Bueno saber!

Cuestiones relacionadas