Maison > développement back-end > Tutoriel Python > Comment comparer de manière fiable les numéros de version en Python ?

Comment comparer de manière fiable les numéros de version en Python ?

Mary-Kate Olsen
Libérer: 2024-11-22 06:44:12
original
270 Les gens l'ont consulté

How to Reliably Compare Version Numbers in Python?

Comparaison des numéros de version en Python

Lorsque vous parcourez un répertoire contenant plusieurs versions du même œuf, assurez-vous que seule la dernière version est ajoutée au sys.path peut poser un défi en raison de l'ordre non intuitif des chaînes de version lorsque l'on les compare comme strings.

Utilisation de packaging.version

Python fournit une solution élégante via le module packaging.version, qui prend en charge l'ordre des chaînes de version de style PEP 440. Ce module propose la classe Version, qui peut être utilisée pour comparer les versions avec précision.

from packaging.version import Version

# Example:
version1 = Version("2.3.1")
version2 = Version("10.1.2")
print(version1 < version2)  # True
Copier après la connexion

Méthodes héritées

Une ancienne méthode pour comparer les chaînes de version est distutils.version . Cependant, il est obsolète et adhère au PEP 386 remplacé. Il fournit deux classes, LooseVersion et StrictVersion.

from distutils.version import LooseVersion, StrictVersion

# LooseVersion compares versions loosely:
version1 = LooseVersion("2.3.1")
version2 = LooseVersion("10.1.2")
print(version1 < version2)  # True

# StrictVersion is stricter in its comparison:
version1 = StrictVersion("2.3.1")
version2 = StrictVersion("10.1.2")
print(version1 < version2)  # True

# However, it doesn't recognize valid PEP 440 versions as strict:
version1 = StrictVersion("1.3.a4")
print(version1)  # ValueError: invalid version number '1.3.a4'
Copier après la connexion

Conclusion

Lors de la comparaison des numéros de version en Python, packaging.version offre une solution fiable et élégante. Il adhère à la spécification PEP 440 actuelle et fournit une API claire et concise pour la comparaison des versions.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal