0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pythonからインターネットショートカット(拡張子.url)を開く

Posted at

Windows環境で拡張子が.urlのインターネットショートカットがあるが、これをPythonからブラウザーに開かせたいなと思った。

urlファイルの中身をテキストエディター等で見ると、次のようなiniファイル形式をしている(最小限の記述での例)。

[InternetShortcut]
URL=https://qiita.com/

Pythonでiniファイルを扱うにはconfigparserを使用することができる。また、ブラウザーを扱うにはwebbrowserを使用した。
Python 3.6, 3.9で使用できるので、最近のバージョンなら問題なさそう。
Windows 10 + Edge, Ubuntu 20.04 + firefoxで確認したところ、どちらも期待通りに動作した。

import webbrowser
import configparser

# インターネットショートカットファイルパス
filename = 'some.url'

# ini形式でファイルを開く。interpolation=Noneの指定は本文参照。
url_file = configparser.ConfigParser(interpolation = None)
url_file.read(filename)

# URLを読んでデフォルトのブラウザーで表示する。
url = url_file['InternetShortcut']['URL']
webbrowser.open(url)

Pythonでは様々な形式のiniファイルを扱えるよう、ConfigParserの引数で指定するinterpolationオプションで変換方式を決めている。ここで、標準だと%を特殊な記号として解釈するようになっている。
しかし、インターネットショートカットでは%2fのようにURL中の記号や日本語などエンコードすることがあり、このままでは解釈エラーで例外を出してしまう。これを防止するために、interpolation = Noneを指定して変換を無効にしている。

まとめ

Pythonから拡張子が.urlのインターネットショートカットをブラウザーに表示させる方法を調べた。中身がini形式のファイルなのでconfigparserで読み込み、webbrowserでブラウザーを開くことで実現した。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?