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(version1A 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(version1Sin 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.
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