假设我有一个检索到的目录名称“LibX_00.03”,我使用以下方法检索该目录的版本信息:
lib = "LibX_00.03"
version = lib[-5:]
完成此操作后,我想将此版本号与其他版本号进行比较,以断言该库的最新版本,但问题在于必须采用数字形式进行比较,而不是字符串。 转换为 int 或 float 都不起作用,因为 int 会给出整数,而 float 会给出不准确的转换:
>>> float(version)
0.299999...
那么如何才能准确地保留版本号,同时将其保存在进行比较的表单中呢?
最佳答案
>>> from distutils.version import StrictVersion
>>> StrictVersion('00.03') > StrictVersion('00.10')
False
>>> StrictVersion('00.03') > StrictVersion('00.02')
True
请注意,如果您将 '1.0b'
作为版本字符串,则此操作将不起作用,为此使用 LooseVersion
:
>>> from distutils.version import LooseVersion
>>> LooseVersion('1.2b') > LooseVersion('0.1')
True
>>> LooseVersion('1.2b') > LooseVersion('1.2c')
False
关于python - 如何准确地将解析后的字符串形式的版本号更改为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12072973/