febrero 04, 2014

Mostrar Folder con python en multiplataforma

Al crear una aplicación quería lanzar un Folder, para que el usuario lo viera. Me encontré con varias soluciones, pero no las he probado todas en multiplataforma.


Supongo que la desición radica en cúan multiplataforma es la solución, como en el caso de Linux, si la solución se aplica a la mayoría de distros.

Solución 01
import os
import platform

def open_file(path):
    if platform.system() == "Windows":
        os.startfile(path)
    elif platform.system() == "Darwin":
        subprocess.Popen(["open", path])
    else:
        subprocess.Popen(["xdg-open", path])

open_file(path)

Solución 02
import webbrowser
webbrowser.open(path)
Solución 03
import os
systems = {
    'nt': os.startfile,
    'posix': lambda foldername: os.system('xdg-open "%s"' % foldername),
    'os2': lambda foldername: os.system('open "%s"' % foldername)
     }

systems.get(os.name, os.startfile)(path)
Obviamente hay más soluciones, si tienen alguna compartanla.

No hay comentarios:

Publicar un comentario