On Wed, Jan 13, 2016 at 4:37 AM, eryk sun <eryk...@gmail.com> wrote: > On Tue, Jan 12, 2016 at 11:10 AM, Chris Angelico <ros...@gmail.com> wrote: >> On Wed, Jan 13, 2016 at 3:51 AM, jkn <jkn...@nicorp.f9.co.uk> wrote: >>> I happy to carve some code without using urllib, but I am not clear what I >>> actually need to do to 'open' such a URL using this protocol. FWIW I can >>> paste >>> this URL into Windows Explorer and I get the referenced email popping up ;-) >> >> What happens if you invoke the 'start' command using subprocess? >> >> subprocess.check_call(["start", url]) >> >> In theory, that should be equivalent to pasting it into Explorer. In theory. > > start is a shell command. It also has a quirk that the first quoted > argument is the window title. Here's the correct call: > > subprocess.check_call('start "title" "%s"' % url, shell=True)
Is that properly escaped to handle any arbitrary URL? I doubt it. Do you actually need shell=True? I would strongly recommend using the form that I used, unless it can be proven that that doesn't work. > That said, since no arguments are being passed the simpler and more > secure way to call ShellExecute in this case is os.startfile(url). Yes. The OP mentioned having tried this, though, so I went for an alternative. ChrisA -- https://mail.python.org/mailman/listinfo/python-list