Saab teavet keskkonnas töötava Pythoni operatsioonisüsteemi ja versiooni kohta.

Äri

Standardraamatukogu platvormimoodulit kasutatakse selleks, et saada teavet operatsioonisüsteemi kohta, millel Python töötab, ja selle versiooni (release) kohta. Selle mooduli abil on võimalik protsessi iga operatsioonisüsteemi ja versiooni jaoks ümber lülitada.

Siin on esitatud järgmine teave.

  • Hangi operatsioonisüsteemi nimi:platform.system()
  • Hankige teavet versiooni (väljalaske) kohta:platform.release(),version()
  • Hankige kohe operatsioonisüsteem ja versioon:platform.platform()
  • Näited tulemuste kohta iga operatsioonisüsteemi puhul
    • macOS
    • Windows
    • Ubuntu
  • Näidiskood töötluse ümberlülitamiseks sõltuvalt operatsioonisüsteemist

Kui soovite teada, millise Pythoni versiooniga te töötate, vaadake järgmist artiklit.

Kogu esimeses pooles olev näidiskood on jooksutatud macOS Mojave 10.14.2 peal; teises pooles on näidistulemused Windowsis ja Ubuntus; teises pooles käsitletakse ka operatsioonisüsteemispetsiifilisi funktsioone.

Saada operatsioonisüsteemi nimi: platform.system()

Operatsioonisüsteemi nimi saadakse platform.system() abil. Tagastatav väärtus on string.

import platform

print(platform.system())
# Darwin

Versiooniteabe (release) hankimine: platform.release(), version()

Andmed operatsioonisüsteemi versiooni (versiooni) kohta saadakse järgmiste funktsioonide abil. Mõlemal juhul on tagastusväärtus string.

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

Nagu järgmises näites näidatud, tagastab platform.release() lihtsama sisu.

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

Saada OS ja versioon korraga: platform.platform()

Operatsioonisüsteemi nime ja versiooni (väljalaske) teavet saab koos kasutades platform.platform(). Tagastatav väärtus on string.

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

Kui argumendi terse väärtus on TRUE, tagastatakse ainult minimaalne teave.

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

Samuti on olemas argument aliased.

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

Tulemus on näidiskeskkonnas sama, kuid mõned operatsioonisüsteemid annavad operatsioonisüsteemi nimena tagasi aliase.

Kui aliased on true, tagastab see tulemuse, kasutades süsteemi ühise nime asemel aliasnime. Näiteks SunOS muutub Solariseks.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation

Näited tulemuste kohta iga operatsioonisüsteemi puhul

Näidatakse näiteid tulemustest macOS-i, Windowsi ja Ubuntu puhul, samuti näidatakse operatsioonisüsteemispetsiifilisi funktsioone.

macOS

Näide tulemuse kohta macOS Mojave 10.14.2 operatsioonisüsteemis. Sama nagu eespool näidatud näide.

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

Pange tähele, et see on Darwin, mitte macOS või Mojave.
Lisateavet Darwini kohta leiate Vikipeedia leheküljelt. Seal on ka kirjeldus viimase versiooni numbri ja nime vastavusest macOS-is.

On olemas madOS-spetsiifiline funktsioon platform.mac_ver().
Tagastusväärtus tagastatakse tuplina (release, versioninfo, machine).
Näidiskeskkonnas on versioninfo tundmatu ja on tühi string-tupel.

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

Windows

Näide tulemustest Windows 10 Home'is.

print(platform.system())
# Windows

print(platform.release())
# 10

print(platform.version())
# 10.0.17763

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

Pange tähele, et platform.release() tagastusväärtus 10 on string, mitte täisarv.

On olemas Windows-spetsiifiline funktsioon platform.win32_ver().
Tagastusväärtus tagastatakse tuplina (release, version, csd, ptype).
csd näitab teenusepaketi staatust.

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

Ubuntu

Näide tulemusest Ubuntu 18.04.1 LTS peal.

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

On olemas Unix-spetsiifiline funktsioon platform.linux_distribution().
Tagastatav väärtus tagastatakse tuplina (distname, version, id).

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

Pange tähele, et funktsioon platform.linux_distribution() on Python 3.8-st eemaldatud. Selle asemel on soovitatav kasutada kolmanda osapoole raamatukogu distributsiooni, mis tuleb eraldi paigaldada pipi abil.

Näidiskood töötluse ümberlülitamiseks sõltuvalt operatsioonisüsteemist

Kui soovite vahetada kasutatavat funktsiooni või meetodit sõltuvalt operatsioonisüsteemist, võite kasutada väärtuse määramiseks meetodit nagu platform.system().

Järgnevalt on toodud näide faili loomise kuupäeva saamise kohta.

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

Selles näites kasutatakse esmalt platform.system() väärtust, et teha kindlaks, kas tegemist on Windowsi või muu süsteemiga.
Seejärel kasutatakse erandite käsitlemist, et lülitada protsess ümber juhtumi, kus atribuut st_birthtime on olemas, ja muude juhtumite vahel.

Copied title and URL