python 版本比较函数 LooseVersion StrictVersion

第一种比较方法  StrictVersion

StrictVersion是由.将一串带有预发布标签的数字分隔为两个或三个部分的格式,预发布标签的字母只能是a或者b加数字版本号,而且只能在最末尾。预发布a版本低于b版本,并且预发布版本永远小于正式发布版本。

合法格式:

0.4       0.4.0  (相同版本)
    0.4.1
    0.5a1     (预发布版本a1,小于0.5,即0.5版本更新)
    0.5b3
    0.5
    0.9.6
    1.0
    1.0.4a3
    1.0.4b1
    1.0.4

非法格式

1           没有.分隔,需要分隔为2-3部分
    2.7.2.2     被分隔成了4个部分
    1.3.a4      预发布版本号应该在数字后面
    1.3pl1      预发布版本号字母标签只能是a或者b
    1.3B1       预发布版本号字母标签只能是a或者b
    1.3c        预发布版本号字母标签后必须加数字版本号

版本比较

In [1]: from distutils.version import StrictVersion

In [2]: StrictVersion('1.2a3') < StrictVersion('1.2b1')
Out[2]: True

In [3]: StrictVersion('1.2b1') < StrictVersion('1.2')
Out[3]: True

In [4]: StrictVersion('1.2') < StrictVersion('1.2.1')
Out[4]: True

In [5]: StrictVersion('1.2') == StrictVersion('1.2.0')
Out[5]: True

In [6]: StrictVersion('1.2.11') < StrictVersion('1.11')
Out[6]: True

第二种比较方法(LooseVersion):

LooseVersion格式要求和StrictVersion不同,或者说它并没有任何规定的格式。由一系列数字,相隔时间或字母的字符串组成,并没有一个严格的格式。在进行比较的时候按照数字大小,字符串按字典顺序比较。

合法格式

1.5.1
    1.5.2b2
    161
    3.10a
    8.02
    3.4j
    1996.07.12
    3.2.pl0
    3.1.1.6
    2g6
    11g
    0.960923
    2.2beta29
    1.13++
    5.5.kw
    2.0b1pl0

非法格式

并没有哟

格式比较

In [1]: from distutils.version import LooseVersion

In [2]: LooseVersion('1.6.0x') < LooseVersion('1.20.0x')
Out[2]: True

In [3]: LooseVersion('2.6.0x') < LooseVersion('1.20.0x')
Out[3]: False

In [4]: LooseVersion('1.20.0x') < LooseVersion('1.20.0z')
Out[4]: True

In [5]: LooseVersion('1') < LooseVersion('a')
Out[5]: True

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值