Moduli standard i platformës së bibliotekës përdoret për të marrë informacion në lidhje me sistemin operativ në të cilin Python po funksionon dhe versionin e tij (lëshimin). Duke përdorur këtë modul, është e mundur të kaloni procesin për secilin OS dhe version.
Informacioni i mëposhtëm jepet këtu.
- Merrni emrin e sistemit operativ:
platform.system()
- Merrni informacionin e versionit (lëshimit):
platform.release()
,version()
- Merrni OS dhe versionin menjëherë:
platform.platform()
- Shembuj të rezultateve për secilin OS
- macOS
- Windows
- Ubuntu
- Shembull kodi për të ndryshuar përpunimin në varësi të sistemit operativ
Nëse doni të dini versionin e Python që po përdorni, shihni artikullin në vijim.
- Artikujt e lidhur:Kontrolloni dhe shfaqni versionin Python (p.sh. sys.version)
I gjithë kodi i mostrës në gjysmën e parë ekzekutohet në macOS Mojave 10.14.2; rezultatet shembull në Windows dhe Ubuntu tregohen në gjysmën e dytë; Funksionet specifike të OS janë diskutuar gjithashtu në gjysmën e dytë.
Merrni emrin e OS: platform.system ()
Emri i sistemit operativ merret nga platforma.system (). Vlera e kthimit është një varg.
import platform
print(platform.system())
# Darwin
Merrni informacionin e versionit (lëshimit): platform.release (), version ()
Informacioni i versionit (lëshimit) të OS merret me funksionet e mëposhtme. Në të dy rastet, vlera e kthimit është një varg.
platform.release()
platform.version()
Siç tregohet në shembullin e mëposhtëm, platform.release () kthen përmbajtje më të thjeshta.
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
Merrni OS dhe versionin menjëherë: platform.platform ()
Emri i OS dhe informacioni i versionit (lëshimit) mund të merren së bashku duke përdorur platform.platform (). Vlera e kthimit është një varg.
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
Nëse vlera e argumentit të shkurtër është TRUE, vetëm informacioni minimal do të kthehet.
print(platform.platform(terse=True))
# Darwin-18.2.0
Ekziston edhe një argument i aluduar.
print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit
Rezultati është i njëjtë në mjedisin shembull, por disa sisteme operative do të kthejnë një pseudonim si emri i OS.
Nëse pseudonimi është i vërtetë, ai e kthen rezultatin duke përdorur një pseudonim në vend të emrit të zakonshëm të sistemit. Për shembull, SunOS bëhet Solaris.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation
Shembuj të rezultateve për secilin OS
Shembuj të rezultateve në macOS, Windows dhe Ubuntu do të shfaqen, si dhe funksione specifike të sistemit operativ.
macOS
Shembull i rezultatit në macOS Mojave 10.14.2. Njësoj si shembulli i treguar më sipër.
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
Vini re se është Darwin, jo macOS ose Mojave.
Për më shumë informacion rreth Darvinit, shihni faqen në Wikipedia. Ekziston gjithashtu një përshkrim i korrespondencës midis numrit të versionit të fundit dhe emrit në macOS.
Ekziston një funksion i veçantë për madOS i quajtur platform.mac_ver ().
Vlera e kthimit kthehet si një tuple (lëshim, versioninfo, makinë).
Në mjedisin shembull, versioninfo është i panjohur dhe është një tufë vargu e zbrazët.
print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')
Windows
Shembull i rezultateve në 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
Vini re se vlera e kthimit 10 e platform.release () është një varg, jo një numër i plotë.
Ekziston një funksion i veçantë për Windows i quajtur platform.win32_ver ().
Vlera e kthimit kthehet si një tuple (version, version, csd, ptype).
csd tregon statusin e paketës së shërbimit.
print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')
Ubuntu
Shembull i rezultatit në 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
Ekziston një platformë funksionale specifike për Unix.linux_distribution ().
Vlera e kthimit kthehet si një tuple (distname, version, id).
print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')
Vini re se platform.linux_distribution () është hequr në Python 3.8. Rekomandohet të përdorni distro bibliotekën e palëve të treta, e cila duhet të instalohet veçmas duke përdorur pip.
Shembull kodi për të ndryshuar përpunimin në varësi të sistemit operativ
Nëse dëshironi të ndërroni funksionin ose metodën që do të përdoret në varësi të sistemit operativ, mund të përdorni një metodë të tillë si platform.system () për të përcaktuar vlerën.
Më poshtë është një shembull i marrjes së datës së krijimit të një skedari.
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
Në këtë shembull, vlera e platform.system () përdoret së pari për të përcaktuar nëse është Windows apo tjetër.
Pastaj, ai përdor më tej trajtimin e përjashtimeve për të kaluar procesin midis rastit ku ekziston atributi st_birthtime dhe rasteve të tjera.