手元に Windows 環境がなく動作確認が取れないので、以下は参考情報としてお読み下さい。
webbrowser のソースコード cpython/webbrowser.py at main · python/cpython を眺めてみますと以下の様な設定部分があります。
python
1 if sys.platform[:3] == "win":
2 # First try to use the default Windows browser
3 register("windows-default", WindowsDefault)
4
5 # Detect some common Windows browsers, fallback to IE
6 iexplore = os.path.join(os.environ.get("PROGRAMFILES", "C:\\Program Files"),
7 "Internet Explorer\\IEXPLORE.EXE")
8 for browser in ("firefox", "firebird", "seamonkey", "mozilla",
9 "netscape", "opera", iexplore):
10 if shutil.which(browser):
11 register(browser, None, BackgroundBrowser(browser))
12
13 :
14
15#
16# Platform support for Windows
17#
18if sys.platform[:3] == "win":
19 class WindowsDefault(BaseBrowser):
20 def open(self, url, new=0, autoraise=True):
21 sys.audit("webbrowser.open", url)
22 try:
23 os.startfile(url)
24 except OSError:
25 # [Error 22] No application is associated with the specified
26 # file for this operation: '<URL>'
27 return False
28 else:
29 return True
最初に register("windows-default", WindowsDefault)
があって os.startfile(url)
で指定した URL をオープンしているので、既定のプログラムが設定されている場合にローカルな HTML ファイルを指定すると html編集ソフトが立ち上がってしまうのだと思います。
Windows の場合、「既定のブラウザ」をレジストリから取得できるはずなので、以下の様にすると期待通りの結果になるかもしれません。よろしければ試してみて下さい。
python
1import webbrowser
2import os
3from winreg import HKEY_CURRENT_USER, OpenKey, QueryValue
4
5with OpenKey(HKEY_CURRENT_USER, r"Software\Classes\http\shell\open\command") as key:
6 cmd = QueryValue(key, None)
7webbrowser.register(cmd, None, webbrowser.BackgroundBrowser(cmd), preferred=True)
8
9filename = 'index.html'
10print(os.path.realpath(filename))
11webbrowser.open('file://' + os.path.realpath(filename))
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。