第一種比較方法 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