Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh membandingkan rentetan versi dengan pasti dalam Python?

Bagaimanakah saya boleh membandingkan rentetan versi dengan pasti dalam Python?

DDD
DDDasal
2024-11-11 07:45:03577semak imbas

How do I reliably compare version strings in Python?

Membandingkan Rentetan Versi dalam Python

Apabila bekerja dengan direktori yang mengandungi berbilang versi perisian yang sama, adalah penting untuk mengenal pasti dan menggunakan hanya yang terkini versi. Ini memerlukan perbandingan nombor versi, yang boleh mencabar kerana perbandingan rentetan mungkin tidak menghasilkan hasil yang tepat.

Perbandingan Khusus Pakej

Python menyediakan penyelesaian piawai untuk membandingkan rentetan versi menggunakan modul packaging.version. Kelas Versi menyokong susunan gaya PEP 440, yang selaras dengan konvensyen yang digunakan oleh pakej Python moden.

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

Pendekatan ini menyediakan kaedah yang boleh dipercayai dan konsisten untuk membandingkan rentetan versi dalam pakej Python.

Perbandingan Legasi

Walaupun packaging.version disyorkan, kaedah lapuk wujud dalam bentuk distutils.versi. Walau bagaimanapun, kaedah ini tidak didokumenkan dan mematuhi PEP 386 yang kini digantikan, menjadikannya tidak serasi dengan amalan versi Python semasa.

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

Adalah penting untuk ambil perhatian bahawa LooseVersion menganggap versi PEP 440 sebagai "tidak ketat" dan tidak mematuhi logik perbandingan versi yang sama seperti Versi. Selain itu, StrictVersion menganggap versi PEP 440 tidak sah dan akan menimbulkan ralat apabila digunakan dengan versi sedemikian.

Atas ialah kandungan terperinci Bagaimanakah saya boleh membandingkan rentetan versi dengan pasti dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn