Modul platforme standardne knjižnice se uporablja za pridobivanje informacij o operacijskem sistemu, v katerem se izvaja Python, in njegovi različici (izdaji). S tem modulom je mogoče preklopiti proces za vsak operacijski sistem in različico.
Tu so na voljo naslednje informacije.
- Pridobi ime operacijskega sistema:
platform.system()
- Pridobite informacije o različici (izdaji):
platform.release()
,version()
- Pridobite operacijski sistem in različico naenkrat:
platform.platform()
- Primeri rezultatov za vsak operacijski sistem
- macOS
- Windows
- Ubuntu
- Vzorec kode za preklop obdelave glede na operacijski sistem
Če želite izvedeti različico programa Python, ki jo uporabljate, si oglejte naslednji članek.
- Povezani članki:Preverite in prikažite različico Pythona (npr. sys.version)
Vsa vzorčna koda v prvi polovici je izvedena v operacijskem sistemu macOS Mojave 10.14.2; v drugi polovici so prikazani rezultati v operacijskih sistemih Windows in Ubuntu; v drugi polovici so obravnavane tudi funkcije, specifične za posamezne operacijske sisteme.
- Pridobite ime operacijskega sistema: platform.system()
- Pridobite informacije o različici (izdaji): platform.release(), version()
- Pridobite operacijski sistem in različico naenkrat: platform.platform()
- Primeri rezultatov za vsak operacijski sistem
- Vzorec kode za preklop obdelave glede na operacijski sistem
Pridobite ime operacijskega sistema: platform.system()
Ime operacijskega sistema se pridobi s funkcijo platform.system(). Vrnjena vrednost je niz.
import platform
print(platform.system())
# Darwin
Pridobite informacije o različici (izdaji): platform.release(), version()
Informacije o različici (izdaji) operacijskega sistema dobite z naslednjimi funkcijami. V obeh primerih je vrnjena vrednost niz.
platform.release()
platform.version()
Kot je prikazano v naslednjem primeru, funkcija platform.release() vrne preprostejšo vsebino.
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
Pridobite operacijski sistem in različico naenkrat: platform.platform()
Ime operacijskega sistema in informacije o različici (izdaji) lahko dobite skupaj z uporabo funkcije platform.platform(). Vrnjena vrednost je niz.
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
Če je vrednost argumenta terse TRUE, bodo vrnjene le minimalne informacije.
print(platform.platform(terse=True))
# Darwin-18.2.0
Na voljo je tudi argument aliased.
print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit
Rezultat je enak v okolju primera, vendar bodo nekateri operacijski sistemi kot ime operacijskega sistema vrnili vzdevek.
Če je vrednost aliased true, vrne rezultat z uporabo vzdevka namesto običajnega imena sistema. Na primer SunOS postane Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation
Primeri rezultatov za vsak operacijski sistem
Prikazani bodo primeri rezultatov v operacijskih sistemih MacOS, Windows in Ubuntu ter funkcije, specifične za posamezne operacijske sisteme.
macOS
Primer rezultata v sistemu macOS Mojave 10.14.2. Enako kot v zgornjem primeru.
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
Upoštevajte, da je to Darwin in ne macOS ali Mojave.
Za več informacij o Darwinu si oglejte stran v Wikipediji. Na voljo je tudi opis skladnosti med številko zadnje različice in imenom v sistemu macOS.
Za sistem madOS je značilna funkcija platform.mac_ver().
Vrnjena vrednost se vrne kot tuple (release, versioninfo, machine).
V okolju primera je versioninfo neznan in je prazen niz.
print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')
Windows
Primer rezultatov v operacijskem sistemu 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
Upoštevajte, da je povratna vrednost 10 funkcije platform.release() niz in ne celo število.
Za sistem Windows je na voljo funkcija platform.win32_ver().
Vrnjena vrednost se vrne kot tuple (release, version, csd, ptype).
csd označuje stanje servisnega paketa.
print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')
Ubuntu
Primer rezultata v Ubuntuju 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
Obstaja funkcija platform.linux_distribution(), specifična za Unix.
Vrnjena vrednost se vrne kot tuple (distname, version, id).
print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')
Upoštevajte, da je funkcija platform.linux_distribution() v Pythonu 3.8 odstranjena. Namesto tega je priporočljivo uporabiti distribucijo knjižnice tretje osebe, ki jo je treba namestiti ločeno z uporabo pip.
Vzorec kode za preklop obdelave glede na operacijski sistem
Če želite preklopiti funkcijo ali metodo, ki se uporabi glede na operacijski sistem, lahko za določitev vrednosti uporabite metodo, kot je platform.system().
V nadaljevanju je prikazan primer pridobivanja datuma ustvarjanja datoteke.
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
V tem primeru se najprej uporabi vrednost funkcije platform.system(), da se ugotovi, ali gre za sistem Windows ali drug sistem.
Nato z obdelavo izjem preklopi postopek med primerom, v katerem obstaja atribut st_birthtime, in drugimi primeri.