import os import subprocess import sys def launch(program): """launch(program) Run program as if it had been double-clicked in Finder, Explorer, Nautilus, etc. On OS X, the program should be a .app bundle, not a UNIX executable. When used with a URL, a non-executable file, etc., the behavior is implementation-defined. Returns something false (0 or None) on success; returns something True (e.g., an error code from open or xdg-open) or throws on failure. However, note that in some cases the command may succeed without actually launching the targeted program.""" if sys.platform == 'darwin': ret = subprocess.call(['open', program]) elif sys.platform.startswith('win'): ret = os.startfile(os.path.normpath(program)) else: ret = subprocess.call(['xdg-open', program]) return ret