Heim >Backend-Entwicklung >Python-Tutorial >Wie vergleiche ich Versionszeichenfolgen in Python zuverlässig?

Wie vergleiche ich Versionszeichenfolgen in Python zuverlässig?

DDD
DDDOriginal
2024-11-11 07:45:03604Durchsuche

How do I reliably compare version strings in Python?

Vergleich von Versionszeichenfolgen in Python

Bei der Arbeit mit Verzeichnissen, die mehrere Versionen derselben Software enthalten, ist es wichtig, nur die neueste zu identifizieren und zu verwenden Version. Dies erfordert den Vergleich von Versionsnummern, was eine Herausforderung sein kann, da Zeichenfolgenvergleiche möglicherweise keine genauen Ergebnisse liefern.

Paketspezifische Vergleiche

Python bietet eine standardisierte Lösung zum Vergleichen von Versionszeichenfolgen unter Verwendung des Moduls „packaging.version“. Die Version-Klasse unterstützt die Reihenfolge im PEP 440-Stil, die den von modernen Python-Paketen verwendeten Konventionen entspricht.

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).")

Dieser Ansatz bietet eine zuverlässige und konsistente Methode zum Vergleichen von Versionszeichenfolgen innerhalb von Python-Paketen.

Legacy-Vergleiche

Während „packaging.version“ empfohlen wird, existiert eine veraltete Methode in Form von distutils.version. Diese Methode ist jedoch nicht dokumentiert und entspricht dem inzwischen ersetzten PEP 386, sodass sie nicht mit den aktuellen Python-Versionierungspraktiken kompatibel ist.

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).")

Es ist wichtig zu beachten, dass LooseVersion PEP 440-Versionen als „nicht streng“ behandelt folgt nicht der gleichen Versionsvergleichslogik wie Version. Darüber hinaus betrachtet StrictVersion PEP 440-Versionen als ungültig und löst bei Verwendung mit solchen Versionen einen Fehler aus.

Das obige ist der detaillierte Inhalt vonWie vergleiche ich Versionszeichenfolgen in Python zuverlässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn