On Jan 15, 2010, at 3:59 PM, Timur Tabi <ti...@freescale.com>

After reading several web pages and mailing list threads, I've learned
that the webbrowser module does not really support opening local
files, even if I use a file:// URL designator.  In most cases,
webbrowser.open() will indeed open the default web browser, but with
Python 2.6 on my Fedora 10 system, it opens a text editor instead.  On
Python 2.5, it opens the default web browser.

This is a problem because my Python script creates a local HTML file
and I want it displayed on the web browser.

So is there any way to force webbrowser.open() to always use an actual
web browser?

I had some discussions with the Python documentation writers that led to the following note being included in the Python 3.1 library documentation for webbrowser.open: "Note that on some platforms, trying to open a filename using this function, may work and start the operating system’s associated program. However, this is neither supported nor portable." The discussions suggested that this lack of support and portability was actually always the case and that the webbrowser module is simply not meant to handle file URLs. I had taken advantage of the accidental functionality to generate HTML reports and open them, as well as to open specific documentation pages from within a program.

You can control which browser opens the URL by using webbrowser.get to obtain a controller for a particular browser, specified by its argument, then call the open method on the controller instead of the module.

For opening files reliability and the ability to pick a particular program (browser or otherwise) to open it with you might have to resort to invoking a command line via subprocess.Popen.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to