Merrni informacion në lidhje me sistemin operativ dhe versionin e Python që funksionon në mjedis.

biznes

Moduli standard i platformës së bibliotekës përdoret për të marrë informacion në lidhje me sistemin operativ në të cilin Python po funksionon dhe versionin e tij (lëshimin). Duke përdorur këtë modul, është e mundur të kaloni procesin për secilin OS dhe version.

Informacioni i mëposhtëm jepet këtu.

  • Merrni emrin e sistemit operativ:platform.system()
  • Merrni informacionin e versionit (lëshimit):platform.release(),version()
  • Merrni OS dhe versionin menjëherë:platform.platform()
  • Shembuj të rezultateve për secilin OS
    • macOS
    • Windows
    • Ubuntu
  • Shembull kodi për të ndryshuar përpunimin në varësi të sistemit operativ

Nëse doni të dini versionin e Python që po përdorni, shihni artikullin në vijim.

I gjithë kodi i mostrës në gjysmën e parë ekzekutohet në macOS Mojave 10.14.2; rezultatet shembull në Windows dhe Ubuntu tregohen në gjysmën e dytë; Funksionet specifike të OS janë diskutuar gjithashtu në gjysmën e dytë.

Merrni emrin e OS: platform.system ()

Emri i sistemit operativ merret nga platforma.system (). Vlera e kthimit është një varg.

import platform

print(platform.system())
# Darwin

Merrni informacionin e versionit (lëshimit): platform.release (), version ()

Informacioni i versionit (lëshimit) të OS merret me funksionet e mëposhtme. Në të dy rastet, vlera e kthimit është një varg.

  • platform.release()
  • platform.version()

Siç tregohet në shembullin e mëposhtëm, platform.release () kthen përmbajtje më të thjeshta.

print(platform.release())
# 18.2.0

print(platform.version())
# Darwin Kernel Version 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64

Merrni OS dhe versionin menjëherë: platform.platform ()

Emri i OS dhe informacioni i versionit (lëshimit) mund të merren së bashku duke përdorur platform.platform (). Vlera e kthimit është një varg.

print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit

Nëse vlera e argumentit të shkurtër është TRUE, vetëm informacioni minimal do të kthehet.

print(platform.platform(terse=True))
# Darwin-18.2.0

Ekziston edhe një argument i aluduar.

print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit

Rezultati është i njëjtë në mjedisin shembull, por disa sisteme operative do të kthejnë një pseudonim si emri i OS.

Nëse pseudonimi është i vërtetë, ai e kthen rezultatin duke përdorur një pseudonim në vend të emrit të zakonshëm të sistemit. Për shembull, SunOS bëhet Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation

Shembuj të rezultateve për secilin OS

Shembuj të rezultateve në macOS, Windows dhe Ubuntu do të shfaqen, si dhe funksione specifike të sistemit operativ.

macOS

Shembull i rezultatit në macOS Mojave 10.14.2. Njësoj si shembulli i treguar më sipër.

print(platform.system())
# Darwin

print(platform.release())
# 18.2.0

print(platform.version())
# Darwin Kernel Version 18.2.0: Mon Nov 12 20:24:46 PST 2018; root:xnu-4903.231.4~2/RELEASE_X86_64

print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit

Vini re se është Darwin, jo macOS ose Mojave.
Për më shumë informacion rreth Darvinit, shihni faqen në Wikipedia. Ekziston gjithashtu një përshkrim i korrespondencës midis numrit të versionit të fundit dhe emrit në macOS.

Ekziston një funksion i veçantë për madOS i quajtur platform.mac_ver ().
Vlera e kthimit kthehet si një tuple (lëshim, versioninfo, makinë).
Në mjedisin shembull, versioninfo është i panjohur dhe është një tufë vargu e zbrazët.

print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')

Windows

Shembull i rezultateve në Windows 10 Home.

print(platform.system())
# Windows

print(platform.release())
# 10

print(platform.version())
# 10.0.17763

print(platform.platform())
# Windows-10-10.0.17763-SP0

Vini re se vlera e kthimit 10 e platform.release () është një varg, jo një numër i plotë.

Ekziston një funksion i veçantë për Windows i quajtur platform.win32_ver ().
Vlera e kthimit kthehet si një tuple (version, version, csd, ptype).
csd tregon statusin e paketës së shërbimit.

print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')

Ubuntu

Shembull i rezultatit në Ubuntu 18.04.1 LTS.

print(platform.system())
# Linux

print(platform.release())
# 4.15.0-42-generic

print(platform.version())
# #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018

print(platform.platform())
# Linux-4.15.0-44-generic-x86_64-with-Ubuntu-18.04-bionic

Ekziston një platformë funksionale specifike për Unix.linux_distribution ().
Vlera e kthimit kthehet si një tuple (distname, version, id).

print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')

Vini re se platform.linux_distribution () është hequr në Python 3.8. Rekomandohet të përdorni distro bibliotekën e palëve të treta, e cila duhet të instalohet veçmas duke përdorur pip.

Shembull kodi për të ndryshuar përpunimin në varësi të sistemit operativ

Nëse dëshironi të ndërroni funksionin ose metodën që do të përdoret në varësi të sistemit operativ, mund të përdorni një metodë të tillë si platform.system () për të përcaktuar vlerën.

Më poshtë është një shembull i marrjes së datës së krijimit të një skedari.

def creation_date(path_to_file):
    """
    Try to get the date that a file was created, falling back to when it was
    last modified if that isn't possible.
    See http://stackoverflow.com/a/39501288/1709587 for explanation.
    """
    if platform.system() == 'Windows':
        return os.path.getctime(path_to_file)
    else:
        stat = os.stat(path_to_file)
        try:
            return stat.st_birthtime
        except AttributeError:
            # We're probably on Linux. No easy way to get creation dates here,
            # so we'll settle for when its content was last modified.
            return stat.st_mtime

Në këtë shembull, vlera e platform.system () përdoret së pari për të përcaktuar nëse është Windows apo tjetër.
Pastaj, ai përdor më tej trajtimin e përjashtimeve për të kaluar procesin midis rastit ku ekziston atributi st_birthtime dhe rasteve të tjera.

Copied title and URL