Python でバージョン文字列の大小比較をしたい
version 1.1 と version 1.2 のどちらが最新か?は人間ならすぐわかるが文字列比較でやろうとしたら結構大変。
そんなときに有益なライブラリを紹介します!
バージョン比較
バージョン文字列を distutils.version の LooseVersionに渡して比較する。
# python3
Python 3.5.5 (default, Sep 26 2019, 02:52:15)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from distutils.version import LooseVersion, StrictVersion
>>> print(LooseVersion('version 1.2') > LooseVersion('version 1.1'))
True
>>> print(LooseVersion('version 1.0') > LooseVersion('version 1.1'))
False
うん、いい感じ!
1.1 とかのアルファベットとかない数字だけの場合は StrictVersion を用いることができる。
名前からして多分厳密っぽいのでよさそう。
$ python3
Python 3.5.5 (default, Sep 26 2019, 02:52:15)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from distutils.version import LooseVersion, StrictVersion
>>> print( StrictVersion('2.1.2') > StrictVersion('2.1.1'))
True
>>> print( StrictVersion('2.0.2') < StrictVersion('2.1.1'))
True
以上!
おまけ
なんか最近は from packaging import version を使うみたい。
以上!