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.
- Mga Kaugnay na Artikulo:Suriin at ipakita ang bersyon ng Python (hal. Sys.version)
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.