Pata habari kuhusu OS na toleo la Python inayoendesha mazingira.

Biashara

Moduli ya jukwaa la maktaba ya kawaida hutumiwa kupata habari kuhusu mfumo wa uendeshaji ambao Python inafanya kazi na toleo lake (kutolewa). Kutumia moduli hii, inawezekana kubadili mchakato kwa kila OS na toleo.

Habari zifuatazo zimetolewa hapa.

  • Pata jina la OS:platform.system()
  • Pata habari ya toleo (kutolewa):platform.release(),version()
  • Pata OS na toleo mara moja:platform.platform()
  • Mifano ya matokeo kwa kila OS
    • macOS
    • Windows
    • Ubuntu
  • Nambari ya mfano kubadili usindikaji kulingana na OS

Ikiwa unataka kujua toleo la Python unayoendesha, angalia nakala ifuatayo.

Nambari zote za sampuli katika nusu ya kwanza zinaendeshwa kwenye MacOS Mojave 10.14.2; matokeo ya mfano kwenye Windows na Ubuntu yanaonyeshwa katika nusu ya pili; Kazi maalum za OS pia zinajadiliwa katika nusu ya pili.

Pata jina la OS: platform.system ()

Jina la OS linapatikana kwa mfumo.system (). Thamani ya kurudi ni kamba.

import platform

print(platform.system())
# Darwin

Pata habari ya toleo (kutolewa): platform.release (), toleo ()

Toleo la toleo la OS (kutolewa) linapatikana na kazi zifuatazo. Katika visa vyote viwili, thamani ya kurudi ni kamba.

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

Kama inavyoonyeshwa katika mfano ufuatao, platform.release () inarudisha yaliyomo rahisi.

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

Pata OS na toleo mara moja: platform.platform ()

Jina la OS na habari (toleo) la habari linaweza kupatikana pamoja kwa kutumia platform.platform (). Thamani ya kurudi ni kamba.

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

Ikiwa thamani ya hoja ni ya KWELI, ni habari ndogo tu itakayorejeshwa.

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

Pia kuna hoja iliyotengwa.

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

Matokeo ni sawa katika mazingira ya mfano, lakini mifumo mingine ya uendeshaji itarudisha jina kama jina la OS.

Ikiwa aliased ni kweli, inarudisha matokeo kwa kutumia jina badala ya jina la kawaida la mfumo. Kwa mfano, SunOS inakuwa Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation

Mifano ya matokeo kwa kila OS

Mifano ya matokeo kwenye MacOS, Windows, na Ubuntu itaonyeshwa, pamoja na kazi maalum za OS.

MacOS

Mfano wa matokeo kwenye MacOS Mojave 10.14.2. Sawa na mfano ulioonyeshwa hapo juu.

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

Kumbuka kuwa ni Darwin, sio MacOS au Mojave.
Kwa habari zaidi kuhusu Darwin, angalia ukurasa wa Wikipedia. Pia kuna maelezo ya mawasiliano kati ya nambari ya toleo la hivi karibuni na jina katika macOS.

Kuna kazi maalum ya madOS inayoitwa platform.mac_ver ().
Thamani ya kurudi inarejeshwa kama Tuple (kutolewa, toleo la toleo, mashine).
Katika mazingira ya mfano, toleo la habari halijulikani na ni tupu ya kamba tupu.

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

Madirisha

Mfano wa matokeo kwenye Nyumba ya Windows 10.

print(platform.system())
# Windows

print(platform.release())
# 10

print(platform.version())
# 10.0.17763

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

Kumbuka kuwa thamani ya kurudi 10 ya platform.release () ni kamba, sio nambari kamili.

Kuna kazi maalum ya Windows inayoitwa platform.win32_ver ().
Thamani ya kurudi inarejeshwa kama Tuple (kutolewa, toleo, csd, ptype).
csd inaonyesha hali ya kifurushi cha huduma.

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

Ubuntu

Mfano wa matokeo kwenye 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

Kuna jukwaa maalum la kazi ya Unix.linux_distribution ().
Thamani ya kurudi inarejeshwa kama Tuple (jina la jina, toleo, id).

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

Kumbuka kuwa platform.linux_distribution () imeondolewa katika Python 3.8. Inashauriwa kutumia distro ya maktaba ya mtu mwingine badala yake, ambayo inahitaji kusanikishwa kando kutumia bomba.

Nambari ya mfano kubadili usindikaji kulingana na OS

Ikiwa unataka kubadilisha kazi au njia itakayotumiwa kulingana na OS, unaweza kutumia njia kama vile platform.system () kuamua thamani.

Ifuatayo ni mfano wa kupata tarehe ya kuunda faili.

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

Katika mfano huu, thamani ya platform.system () hutumiwa kwanza kuamua ikiwa ni Windows au nyingine.
Halafu, hutumia utunzaji wa kipekee kubadili mchakato kati ya kesi ambapo sifa ya st_birthtime ipo na kesi zingine.