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.
- Articole conexe:Verificați și afișați versiunea Python (de exemplu, sys.version)
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()
- Obțineți informații despre versiune (release): platform.release(), version()
- Obțineți sistemul de operare și versiunea dintr-o dată: platform.platform()
- Exemple de rezultate pentru fiecare sistem de operare
- Exemplu de cod pentru a comuta procesarea în funcție de sistemul 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.