„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie vergleiche ich Python-Versionszeichenfolgen genau?

Wie vergleiche ich Python-Versionszeichenfolgen genau?

Veröffentlicht am 18.11.2024
Durchsuche:904

How to Accurately Compare Python Version Strings?

So vergleichen Sie Python-Versionszeichenfolgen elegant

Bei der Arbeit mit Python-Paketen ist es oft notwendig, Versionsnummern zu vergleichen. Der Vergleich von String-Versionen kann jedoch zu falschen Ergebnissen führen, da die String-Reihenfolge möglicherweise nicht der tatsächlichen Versionsreihenfolge entspricht.

Um dieses Problem zu beheben, stellt Python die Klasse „packaging.version.Version“ bereit, die PEP 440 unterstützt Stil der Reihenfolge der Versionszeichenfolgen. Diese Methode ermöglicht den genauen Vergleich von Versionszeichenfolgen unter Berücksichtigung von Sonderzeichen und Vorabversionskennungen.

Die Verwendung von Version ist unkompliziert:

from packaging.version import Version

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

print(version1 

Im Gegensatz zum nativen String-Vergleich erkennt Version korrekt, dass „2.3.1“ kleiner als „10.1.2“ ist.

Eine weitere Option, wenn auch veraltet, ist distutils.version. Obwohl es nicht dokumentiert ist und dem veralteten PEP 386 entspricht, kann es dennoch auftreten:

from distutils.version import LooseVersion

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

print(version1 

Distutils.version weist jedoch Einschränkungen auf und verarbeitet PEP 440-Versionen nicht korrekt.

Zusammenfassend für den genauen und pythonischen Vergleich von Python-Versionszeichenfolgen Verwenden Sie auf diese Weise package.version.Version.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3