Obțineți informații despre sistemul de operare și versiunea de Python care rulează în mediul respectiv.

Afaceri

Modulul de platformă al bibliotecii standard este utilizat pentru a obține informații despre sistemul de operare pe care rulează Python și versiunea (release) acestuia. Cu ajutorul acestui modul, este posibil să se comute procesul pentru fiecare sistem de operare și versiune.

Aici sunt furnizate următoarele informații.

  • Obțineți numele sistemului de operare:platform.system()
  • Obțineți informații despre versiune (versiune):platform.release(),version()
  • Obțineți imediat sistemul de operare și versiunea:platform.platform()
  • Exemple de rezultate pentru fiecare sistem de operare
    • macOS
    • Windows
    • Ubuntu
  • Exemplu de cod pentru a comuta procesarea în funcție de sistemul de operare

Dacă doriți să aflați versiunea de Python pe care o executați, consultați următorul articol.

Toate exemplele de cod din prima jumătate sunt rulate pe macOS Mojave 10.14.2; în a doua jumătate sunt prezentate exemple de rezultate pe Windows și Ubuntu; în a doua jumătate sunt discutate și funcțiile specifice sistemului de operare.

Obțineți numele sistemului de operare: platform.system()

Numele sistemului de operare este obținut prin platform.system(). Valoarea returnată este un șir de caractere.

import platform

print(platform.system())
# Darwin

Obțineți informații despre versiune (release): platform.release(), version()

Informațiile privind versiunea sistemului de operare (versiune) se obțin cu ajutorul următoarelor funcții. În ambele cazuri, valoarea returnată este un șir de caractere.

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

După cum se arată în exemplul următor, platform.release() returnează un conținut mai simplu.

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

Obțineți sistemul de operare și versiunea dintr-o dată: platform.platform()

Numele sistemului de operare și informațiile despre versiune (release) pot fi obținute împreună cu ajutorul platform.platform(). Valoarea returnată este un șir de caractere.

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

În cazul în care valoarea argumentului terse este TRUE, vor fi returnate doar informații minime.

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

Există, de asemenea, un argument aliased.

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

Rezultatul este același în mediul de exemplu, dar unele sisteme de operare vor returna un alias ca nume al sistemului de operare.

Dacă aliased este adevărat, se returnează rezultatul folosind un alias în loc de numele comun al sistemului. De exemplu, SunOS devine Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation

Exemple de rezultate pentru fiecare sistem de operare

Vor fi prezentate exemple de rezultate pe macOS, Windows și Ubuntu, precum și funcții specifice sistemului de operare.

macOS

Exemplu de rezultat pe macOS Mojave 10.14.2. La fel ca în exemplul prezentat mai sus.

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

Rețineți că este vorba de Darwin, nu de macOS sau Mojave.
Pentru mai multe informații despre Darwin, consultați pagina Wikipedia. Există, de asemenea, o descriere a corespondenței dintre ultimul număr de versiune și numele din macOS.

Există o funcție specifică madOS numită platform.mac_ver().
Valoarea de retur este returnată sub forma unei cuple (release, versioninfo, machine).
În mediul de exemplu, versioninfo este necunoscut și este un tuplu de șiruri goale.

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

Windows

Exemplu de rezultate pe 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

Rețineți că valoarea de returnare 10 din platform.release() este un șir de caractere, nu un număr întreg.

Există o funcție specifică pentru Windows numită platform.win32_ver().
Valoarea de retur este returnată sub forma unei cuple (release, version, csd, ptype).
csd indică starea pachetului de servicii.

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

Ubuntu

Exemplu de rezultat pe 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

Există o funcție specifică Unix platform.linux_distribution().
Valoarea de retur este returnată sub forma unei cuple (distname, version, id).

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

Rețineți că platform.linux_distribution() a fost eliminat în Python 3.8. Se recomandă să utilizați în schimb distribuția de bibliotecă terță parte, care trebuie instalată separat cu ajutorul pip.

Exemplu de cod pentru a comuta procesarea în funcție de sistemul de operare

Dacă doriți să schimbați funcția sau metoda care urmează să fie utilizată în funcție de sistemul de operare, puteți utiliza o metodă precum platform.system() pentru a determina valoarea.

Următorul este un exemplu de obținere a datei de creare a unui fișier.

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 acest exemplu, valoarea lui platform.system() este utilizată mai întâi pentru a determina dacă este vorba de Windows sau de alt sistem.
Apoi, se utilizează în continuare gestionarea excepțiilor pentru a comuta procesul între cazul în care există atributul st_birthtime și celelalte cazuri.

Copied title and URL