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

Comment comparer de manière fiable les chaînes de version en Python ?

DDD
Libérer: 2024-11-11 07:45:03
original
608 Les gens l'ont consulté

How do I reliably compare version strings in Python?

Comparaison des chaînes de versions en Python

Lorsque vous travaillez avec des répertoires contenant plusieurs versions du même logiciel, il est crucial d'identifier et d'utiliser uniquement la dernière version. Cela nécessite de comparer les numéros de version, ce qui peut être difficile car les comparaisons de chaînes peuvent ne pas donner des résultats précis.

Comparaisons spécifiques au package

Python fournit une solution standardisée pour comparer les chaînes de version. en utilisant le module packaging.version. La classe Version prend en charge l'ordre de style PEP 440, qui s'aligne sur les conventions utilisées par les packages Python modernes.

from packaging.version import Version

version1 = Version("2.3.1")
version2 = Version("10.1.2")

if version1 < version2:
    print("Version 1 (2.3.1) is older than Version 2 (10.1.2).")
Copier après la connexion

Cette approche fournit une méthode fiable et cohérente pour comparer les chaînes de version dans les packages Python.

Comparaisons héritées

Bien que packaging.version soit recommandé, une méthode obsolète existe sous la forme de distutils.version. Cependant, cette méthode n'est pas documentée et est conforme à la norme PEP 386, désormais remplacée, ce qui la rend incompatible avec les pratiques actuelles de gestion des versions Python.

from distutils.version import LooseVersion, StrictVersion

version1 = LooseVersion("2.3.1")
version2 = LooseVersion("10.1.2")

if version1 < version2:
    print("Version 1 (2.3.1) is older than Version 2 (10.1.2).")
Copier après la connexion

Il est important de noter que LooseVersion traite les versions PEP 440 comme « non strictes » et n'adhère pas à la même logique de comparaison de versions que Version. De plus, StrictVersion considère les versions PEP 440 comme invalides et génère une erreur lorsqu'elle est utilisée avec de telles 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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal