"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo comparar con precisión cadenas de versiones de Python?

¿Cómo comparar con precisión cadenas de versiones de Python?

Publicado el 2024-11-18
Navegar:634

How to Accurately Compare Python Version Strings?

Cómo comparar elegantemente cadenas de versiones de Python

Cuando se trabaja con paquetes de Python, a menudo es necesario comparar números de versión. Sin embargo, comparar versiones de cadenas puede generar resultados incorrectos, ya que el orden de las cadenas puede no corresponderse con el orden de las versiones reales.

Para solucionar este problema, Python proporciona la clase packaging.version.Version, que admite PEP 440. estilo de ordenación de cadenas de versiones. Este método permite comparar con precisión las cadenas de versiones, teniendo en cuenta los caracteres especiales y los identificadores previos al lanzamiento.

Usar la versión es sencillo:

from packaging.version import Version

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

print(version1 

A diferencia de la comparación de cadenas nativas, la versión reconoce correctamente que "2.3.1" es menor que "10.1.2".

Otra opción, aunque obsoleta, es distutils.version. Si bien no está documentado y cumple con el PEP 386 obsoleto, aún se puede encontrar:

from distutils.version import LooseVersion

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

print(version1 

Sin embargo, distutils.version tiene limitaciones y no maneja las versiones de PEP 440 correctamente.

En resumen, para comparar cadenas de versiones de Python con precisión y en formato Pythonic manera, utilice packaging.version.Version.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3