import BaseHTTPServer import webbrowser def LoadInDefaultBrowser(html): """Display html in the default web browser without creating a temp file. Instantiates a trivial http server and calls webbrowser.open with a URL to retrieve html from that server. """ class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): def do_GET(self): bufferSize = 1024*1024 for i in xrange(0, len(html), bufferSize): self.wfile.write(html[i:i+bufferSize]) server = BaseHTTPServer.HTTPServer(('127.0.0.1', 0), RequestHandler) webbrowser.open('http://127.0.0.1:%s' % server.server_port) server.handle_request() if __name__ == '__main__': LoadInDefaultBrowser('Hello World')