My application prints a PDF to a temporary file. How can I open that file with the default application in Python?
I need a solution for
Open file using an application that your browser thinks is an appropriate one:
import webbrowser
webbrowser.open_new_tab(filename)
os.startfile is only available for windows for now, but xdg-open will be available on any unix client running X.
if sys.platform == 'linux2':
subprocess.call(["xdg-open", file])
else:
os.startfile(file)
A small correction is necessary for NicDumZ's solution to work exactly as given. The problem is with the use of 'is' operator. A working solution is:
if sys.platform == 'linux2':
subprocess.call(["xdg-open", file])
else:
os.startfile(file)
A good discussion of this topic is at Is there a difference between `==` and `is` in Python?.
on windows it works with os.system('start <myFile>')
. On Mac (I know you didn't ask...) it's os.system('open <myFile>')
if linux:
os.system('xdg-open "$file"') #works for urls too
else:
os.system('start "$file"') #a total guess
Ask your favorite Application Framework for how to do this in Linux.
This will work on Windos and Linux as long as you use GTK:
import gtk
gtk.show_uri(gtk.gdk.screen_get_default(), URI, 0)
where URI
is the local URL to the file