Kumuha ng impormasyon tungkol sa OS at bersyon ng Python na tumatakbo sa kapaligiran.

Negosyo

Ang karaniwang module ng platform ng library ay ginagamit upang makakuha ng impormasyon tungkol sa operating system kung saan tumatakbo ang Python at ang bersyon nito (bitawan). Gamit ang modyul na ito, posible na ilipat ang proseso para sa bawat OS at bersyon.

Ang sumusunod na impormasyon ay ibinigay dito.

  • Kunin ang pangalan ng OS:platform.system()
  • Kumuha ng impormasyon (bitawan) na impormasyon:platform.release(),version()
  • Kumuha ng OS at bersyon nang sabay-sabay:platform.platform()
  • Mga halimbawa ng mga resulta para sa bawat OS
    • macOS
    • Windows
    • Ubuntu
  • Sample code upang ilipat ang pagproseso depende sa OS

Kung nais mong malaman ang bersyon ng Python na iyong pinapatakbo, tingnan ang sumusunod na artikulo.

Ang lahat ng sample code sa unang kalahati ay pinapatakbo sa macOS Mojave 10.14.2; halimbawa ng mga resulta sa Windows at Ubuntu ay ipinapakita sa ikalawang kalahati; Tinalakay din ang mga pag-andar na tukoy sa OS sa ikalawang kalahati.

Kunin ang pangalan ng OS: platform.system ()

Ang pangalan ng OS ay nakuha ng platform.system (). Ang halaga ng pagbalik ay isang string.

import platform

print(platform.system())
# Darwin

Kumuha ng impormasyon (bitawan) na impormasyon: platform.release (), bersyon ()

Ang impormasyon ng bersyon ng OS (paglabas) ay nakuha sa mga sumusunod na pag-andar. Sa parehong kaso, ang halaga ng pagbabalik ay isang string.

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

Tulad ng ipinakita sa sumusunod na halimbawa, ang platform.release () ay nagbabalik ng mas simpleng mga nilalaman.

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

Kumuha ng OS at bersyon nang sabay-sabay: platform.platform ()

Ang impormasyon ng pangalan ng OS at bersyon (bitawan) ay maaaring makuha nang magkasama gamit ang platform.platform (). Ang halaga ng pagbalik ay isang string.

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

Kung ang halaga ng pagtatalo ng argument ay TUNAY, kaunting impormasyon lamang ang ibabalik.

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

Mayroon ding pagtatalo na alias.

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

Ang resulta ay pareho sa halimbawa ng kapaligiran, ngunit ang ilang mga operating system ay magbabalik ng isang alias bilang pangalan ng OS.

Kung totoo ang alias, ibabalik nito ang resulta gamit ang isang alias sa halip na karaniwang pangalan ng system. Halimbawa, ang SunOS ay naging Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation

Mga halimbawa ng mga resulta para sa bawat OS

Ang mga halimbawa ng mga resulta sa macOS, Windows, at Ubuntu ay ipapakita, pati na rin ang mga pagpapaandar na tukoy sa OS.

Mac OS

Halimbawa ng resulta sa macOS Mojave 10.14.2. Kapareho ng halimbawang ipinakita sa itaas.

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

Tandaan na ito ay si Darwin, hindi macOS o Mojave.
Para sa karagdagang impormasyon tungkol sa Darwin, tingnan ang pahina ng Wikipedia. Mayroon ding paglalarawan ng pagsulat sa pagitan ng pinakabagong numero ng bersyon at ang pangalan sa macOS.

Mayroong tukoy na tukoy na madOS na tinatawag na platform.mac_ver ().
Ang halaga ng pagbabalik ay ibinalik bilang isang tuple (bitawan, bersyoninfo, makina).
Sa halimbawa ng kapaligiran, ang bersyoninfo ay hindi kilala at walang laman na string tuple.

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

Windows

Halimbawa ng mga resulta sa 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

Tandaan na ang halaga ng pagbabalik 10 ng platform.release () ay isang string, hindi isang integer.

Mayroong pagpapaandar na tukoy sa Windows na tinatawag na platform.win32_ver ().
Ang halaga ng pagbalik ay ibinalik bilang isang tuple (bitawan, bersyon, csd, ptype).
Ipinapahiwatig ng csd ang katayuan ng service pack.

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

Ubuntu

Halimbawa ng resulta sa 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

Mayroong tukoy na Unix na tumutukoy sa platform.linux_distribution ().
Ang bumalik na halaga ay ibinalik bilang isang tuple (distname, bersyon, id).

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

Tandaan na ang platform.linux_distribution () ay inalis sa Python 3.8. Inirerekumenda na gamitin ang third party library distro sa halip, na kailangang mai-install nang hiwalay gamit ang pip.

Sample code upang ilipat ang pagproseso depende sa OS

Kung nais mong ilipat ang pagpapaandar o pamamaraan na gagamitin depende sa OS, maaari kang gumamit ng isang pamamaraan tulad ng platform.system () upang matukoy ang halaga.

Ang sumusunod ay isang halimbawa ng pagkuha ng petsa ng paglikha ng isang file.

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

Sa halimbawang ito, ang halaga ng platform.system () ay unang ginamit upang matukoy kung ito ay Windows o iba pa.
Pagkatapos, gumagamit pa ito ng paghawak ng pagbubukod upang ilipat ang proseso sa pagitan ng kaso kung saan mayroon ang katangiang st_birthtime at iba pang mga kaso.

Copied title and URL