मानक पुस्तकालय मंच मॉड्यूल का उपयोग उस ऑपरेटिंग सिस्टम के बारे में जानकारी प्राप्त करने के लिए किया जाता है जिस पर पायथन चल रहा है और इसका संस्करण (रिलीज)। इस मॉड्यूल का उपयोग करके, प्रत्येक ओएस और संस्करण के लिए प्रक्रिया को स्विच करना संभव है।
निम्नलिखित जानकारी यहाँ प्रदान की गई है।
- ओएस नाम प्राप्त करें:
platform.system()
- संस्करण (रिलीज़) जानकारी प्राप्त करें:
platform.release()
,version()
- OS और संस्करण एक साथ प्राप्त करें:
platform.platform()
- प्रत्येक OS के लिए परिणामों के उदाहरण
- macOS
- Windows
- Ubuntu
- OS के आधार पर प्रोसेसिंग स्विच करने के लिए नमूना कोड
यदि आप अपने द्वारा चलाए जा रहे पायथन के संस्करण को जानना चाहते हैं, तो निम्न आलेख देखें।
पहली छमाही में सभी नमूना कोड macOS Mojave 10.14.2 पर चलते हैं; विंडोज और उबंटू पर उदाहरण के परिणाम दूसरी छमाही में दिखाए जाते हैं; दूसरी छमाही में ओएस-विशिष्ट कार्यों पर भी चर्चा की गई है।
OS नाम प्राप्त करें: platform.system()
OS नाम platform.system() द्वारा प्राप्त किया जाता है। वापसी मूल्य एक स्ट्रिंग है।
import platform
print(platform.system())
# Darwin
संस्करण (रिलीज़) जानकारी प्राप्त करें: platform.release (), संस्करण ()
ओएस संस्करण (रिलीज) की जानकारी निम्नलिखित कार्यों के साथ प्राप्त की जाती है। दोनों ही मामलों में, वापसी मान एक स्ट्रिंग है।
platform.release()
platform.version()
जैसा कि निम्नलिखित उदाहरण में दिखाया गया है, platform.release() सरल सामग्री देता है।
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
OS और संस्करण एक साथ प्राप्त करें: platform.platform()
प्लेटफ़ॉर्म.प्लेटफ़ॉर्म () का उपयोग करके OS नाम और संस्करण (रिलीज़) की जानकारी एक साथ प्राप्त की जा सकती है। वापसी मूल्य एक स्ट्रिंग है।
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
यदि तर्क terse का मान TRUE है, तो केवल न्यूनतम जानकारी ही दी जाएगी।
print(platform.platform(terse=True))
# Darwin-18.2.0
एक तर्क अलियास भी है।
print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit
परिणाम उदाहरण परिवेश में समान है, लेकिन कुछ ऑपरेटिंग सिस्टम OS नाम के रूप में एक उपनाम लौटाएंगे।
यदि अलियास्ड सत्य है, तो यह सिस्टम के सामान्य नाम के बजाय उपनाम का उपयोग करके परिणाम देता है। उदाहरण के लिए, सनओएस सोलारिस बन जाता है।
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation
प्रत्येक OS के लिए परिणामों के उदाहरण
MacOS, Windows और Ubuntu पर परिणामों के उदाहरण दिखाए जाएंगे, साथ ही OS-विशिष्ट फ़ंक्शन भी।
मैक ओएस
MacOS Mojave 10.14.2 पर परिणाम का उदाहरण। ऊपर दिखाए गए उदाहरण के समान।
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
ध्यान दें कि यह डार्विन है, macOS या Mojave नहीं।
डार्विन के बारे में अधिक जानकारी के लिए विकिपीडिया पृष्ठ देखें। नवीनतम संस्करण संख्या और macOS में नाम के बीच पत्राचार का विवरण भी है।
एक मैडोस-विशिष्ट फ़ंक्शन है जिसे platform.mac_ver() कहा जाता है।
वापसी मूल्य एक टुपल (रिलीज, वर्जनइन्फो, मशीन) के रूप में वापस किया जाता है।
उदाहरण के वातावरण में, वर्जनइन्फो अज्ञात है और एक खाली स्ट्रिंग टपल है।
print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')
खिड़कियाँ
विंडोज 10 होम पर परिणामों का उदाहरण।
print(platform.system())
# Windows
print(platform.release())
# 10
print(platform.version())
# 10.0.17763
print(platform.platform())
# Windows-10-10.0.17763-SP0
ध्यान दें कि platform.release() का वापसी मान 10 एक स्ट्रिंग है, पूर्णांक नहीं।
प्लेटफ़ॉर्म.win32_ver() नामक एक विंडोज़-विशिष्ट फ़ंक्शन है।
वापसी मूल्य एक टुपल (रिलीज, संस्करण, सीएसडी, पीटीपीई) के रूप में वापस किया जाता है।
csd सर्विस पैक की स्थिति को दर्शाता है।
print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')
उबंटू
उबंटू 18.04.1 एलटीएस पर परिणाम का उदाहरण।
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
एक यूनिक्स-विशिष्ट फ़ंक्शन platform.linux_distribution() है।
वापसी मूल्य एक टुपल (डिस्टनाम, संस्करण, आईडी) के रूप में वापस किया जाता है।
print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')
ध्यान दें कि Python 3.8 में platform.linux_distribution() को हटा दिया गया है। इसके बजाय तृतीय पक्ष लाइब्रेरी डिस्ट्रो का उपयोग करने की अनुशंसा की जाती है, जिसे पाइप का उपयोग करके अलग से स्थापित करने की आवश्यकता होती है।
OS के आधार पर प्रोसेसिंग स्विच करने के लिए नमूना कोड
यदि आप ओएस के आधार पर उपयोग किए जाने वाले फ़ंक्शन या विधि को स्विच करना चाहते हैं, तो आप मान निर्धारित करने के लिए platform.system() जैसी विधि का उपयोग कर सकते हैं।
फ़ाइल की निर्माण तिथि प्राप्त करने का एक उदाहरण निम्नलिखित है।
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
इस उदाहरण में, प्लेटफॉर्म.सिस्टम () का मान सबसे पहले यह निर्धारित करने के लिए उपयोग किया जाता है कि यह विंडोज है या अन्य।
फिर, यह उस मामले के बीच प्रक्रिया को स्विच करने के लिए अपवाद हैंडलिंग का उपयोग करता है जहां st_birthtime विशेषता मौजूद है और अन्य मामले।