Fáðu upplýsingar um stýrikerfið og útgáfu Python sem er í gangi í umhverfinu.

Viðskipti

Staðlaða bókasafnspallseiningin er notuð til að fá upplýsingar um stýrikerfið sem Python er í gangi og útgáfu þess (útgáfa). Með þessari einingu er hægt að skipta um ferli fyrir hvert stýrikerfi og útgáfu.

Eftirfarandi upplýsingar eru veittar hér.

  • Fáðu OS nafnið:platform.system()
  • Fáðu upplýsingar um útgáfu (útgáfu):platform.release(),version()
  • Fáðu stýrikerfi og útgáfu í einu:platform.platform()
  • Dæmi um niðurstöður fyrir hvert stýrikerfi
    • macOS
    • Windows
    • Ubuntu
  • Dæmi um kóða til að skipta um vinnslu eftir stýrikerfi

Ef þú vilt vita hvaða útgáfu af Python þú ert að keyra skaltu skoða eftirfarandi grein.

Allur sýnishornakóði í fyrri hluta er keyrður á macOS Mojave 10.14.2; dæmi niðurstöður á Windows og Ubuntu eru sýndar í seinni hluta; Einnig er fjallað um OS-sérstakar aðgerðir í seinni hluta.

Fáðu stýrikerfisheitið: platform.system ()

OS nafnið er fengið með platform.system (). Skilgildið er strengur.

import platform

print(platform.system())
# Darwin

Fáðu upplýsingar um útgáfu (útgáfu): platform.release (), útgáfa ()

Upplýsingar um stýrikerfisútgáfu (útgáfu) fást með eftirfarandi aðgerðum. Í báðum tilfellum er skilagildið strengur.

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

Eins og sýnt er í eftirfarandi dæmi skilar platform.release () einfaldara innihaldi.

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

Fáðu stýrikerfi og útgáfu í einu: platform.platform ()

Hægt er að fá upplýsingar um stýrikerfisheiti og útgáfu (útgáfu) með því að nota platform.platform (). Skilgildið er strengur.

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

Ef verðmæti rökstuðningsins er satt, verður aðeins lágmarksupplýsingum skilað.

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

Það er líka rifrildi samnefnt.

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

Niðurstaðan er sú sama í dæmiumhverfinu, en sum stýrikerfi munu skila samnefni sem OS -heiti.

Ef samnefnt er satt skilar það niðurstöðunni með samnefni í stað sameiginlegs nafns kerfisins. Til dæmis verður SunOS að Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation

Dæmi um niðurstöður fyrir hvert stýrikerfi

Sýnd verða dæmi um niðurstöður á macOS, Windows og Ubuntu, svo og OS-sértækar aðgerðir.

macOS

Dæmi um niðurstöðuna á macOS Mojave 10.14.2. Sama og dæmið sem sýnt er hér að ofan.

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

Athugið að það er Darwin, ekki macOS eða Mojave.
Nánari upplýsingar um Darwin er að finna á Wikipedia síðu. Það er einnig lýsing á samsvörun milli nýjasta útgáfunúmersins og nafnsins í macOS.

Það er madOS-sértæk aðgerð sem kallast platform.mac_ver ().
Skilagildinu er skilað sem túpa (útgáfa, útgáfuupplýsingar, vél).
Í dæmiumhverfinu er versioninfo óþekkt og er tóm strengjaþráður.

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

Windows

Dæmi um niðurstöður á 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

Athugið að skilagildi 10 platform.release () er strengur, ekki heil tala.

Það er Windows-sértæk aðgerð sem kallast platform.win32_ver ().
Skilagildinu er skilað sem túpa (útgáfa, útgáfa, csd, ptype).
csd gefur til kynna stöðu þjónustupakkans.

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

Ubuntu

Dæmi um niðurstöðuna á 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

Það er Unix-sérstakur virka pallur.linux_distribution ().
Skilgildinu er skilað sem túpa (fjarnafn, útgáfa, auðkenni).

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

Athugið að platform.linux_distribution () hefur verið fjarlægt í Python 3.8. Mælt er með því að nota dreifingu bókasafns þriðja aðila í staðinn sem þarf að setja upp sérstaklega með pip.

Dæmi um kóða til að skipta um vinnslu eftir stýrikerfi

Ef þú vilt skipta um þá aðgerð eða aðferð sem á að nota eftir stýrikerfi geturðu notað aðferð eins og platform.system () til að ákvarða gildið.

Eftirfarandi er dæmi um hvernig hægt er að búa til dagsetningu skráar.

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

Í þessu dæmi er verðmæti platform.system () fyrst notað til að ákvarða hvort það er Windows eða annað.
Síðan notar það ennfremur undantekningarmeðferð til að skipta ferlinu milli málsins þar sem st_birthtime eiginleiki er til og hinna tilfella.

Copied title and URL