Как элегантно сравнивать строки версий Python
При работе с пакетами Python часто необходимо сравнивать номера версий. Однако сравнение версий строк может привести к неправильным результатам, поскольку порядок строк может не соответствовать фактическому порядку версий.
Для решения этой проблемы Python предоставляет класс package.version.Version, который поддерживает PEP 440. стиль упорядочения строк версий. Этот метод позволяет точно сравнивать строки версий с учетом специальных символов и идентификаторов предварительных выпусков.
Использовать версию очень просто:
from packaging.version import Version version1 = Version("2.3.1") version2 = Version("10.1.2") print(version1В отличие от собственного сравнения строк, Version правильно распознает, что «2.3.1» меньше, чем «10.1.2».
Другой вариант, хотя и устаревший, это distutils.version. Хотя он недокументирован и соответствует устаревшему PEP 386, его все равно можно встретить:
from distutils.version import LooseVersion version1 = LooseVersion("2.3.1") version2 = LooseVersion("10.1.2") print(version1Однако distutils.version имеет ограничения и некорректно обрабатывает версии PEP 440.
В общем, для точного сравнения строк версий Python и в Pythonic кстати, используйте package.version.Version.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3