कैसे मैं पायथन में ऑपरेटिंग सिस्टम की जाँच करूं?


148

मैं ऑपरेटिंग सिस्टम (कंप्यूटर पर जहां स्क्रिप्ट चलती है) की जांच करना चाहता हूं।

मुझे पता है कि मैं os.system('uname -o')लिनक्स में उपयोग कर सकता हूं , लेकिन यह मुझे कंसोल में एक संदेश देता है, और मैं एक चर को लिखना चाहता हूं।

यह ठीक होगा यदि स्क्रिप्ट बता सकती है कि यह मैक, विंडोज या लिनक्स है या नहीं। मैं इसे कैसे जांच सकता हूं?



जवाबों:


287

आप उपयोग कर सकते हैं sys.platform:

from sys import platform
if platform == "linux" or platform == "linux2":
    # linux
elif platform == "darwin":
    # OS X
elif platform == "win32":
    # Windows...

sys.platform से बारीक ग्रैन्युलैरिटी है sys.name

मान्य मानों के लिए, दस्तावेज़ से परामर्श करें

“मैं किस OS पर चल रहा हूँ” का उत्तर भी देखें।


8
ध्यान दें कि साइबरविन में, यह वैसा "cygwin"नहीं है "win32"जैसा कि कोई उम्मीद कर सकता है।
मिशैल बेंटकोव्स्की

21
धन्यवाद। Linux और linux2 में क्या अंतर है?
थारिंदु रुसिरा

1
बीएसडी के लिए आउटपुट क्या होगा?
गैलोज

1
ध्यान दें कि पाइथन 3.3 के बाद से, "linux2"अब इसका संभावित मान नहीं है platform(corroboration के लिए लिंक किए गए डॉक्स देखें) और इसलिए यदि आपको केवल पायथन 3.3 का समर्थन करने की आवश्यकता है और बाद में आप `या प्लेटफ़ॉर्म ==" linux2 "क्लॉज को सुरक्षित रूप से हटा सकते हैं पहली शर्त।
मार्क अमेरी

23

यदि आप जानना चाहते हैं कि आप "लिनक्स", "विंडोज", या "डार्विन" (मैक) से बाहर किस प्लेटफॉर्म पर हैं, तो अधिक सटीकता के बिना, आपको उपयोग करना चाहिए:

>>> import platform
>>> platform.system()
'Linux'  # or 'Windows'/'Darwin'

platform.systemसमारोह का उपयोग करता है unameआंतरिक रूप से।


1
मैं इस समाधान चाहते हैं, लेकिन मैं बाहर बात करने के लिए किए गए दस्तावेज़ों से यह कहा गया है कि है कि यह वापस आ जाएगी चाहते हैं Linux, Windows, Javaया एक खाली स्ट्रिंग। devdocs.io/python~3.7/library/platform#platform.system
ब्रैंडन

2
@BrandonBenefield, गणना संभव मूल्यों का एक उदाहरण है। Apple उपकरणों पर, यह "डार्विन" लौटाता है।
लॉरेंट लेपोरटी

15

आप जिस ओएस का उपयोग कर रहे हैं, उसके बारे में जान सकते हैं sys.platform

एक बार आपके पास वह जानकारी होने के बाद आप इसका उपयोग यह निर्धारित करने के लिए कर सकते हैं कि कुछ कॉल os.uname()करना अधिक विशिष्ट जानकारी एकत्र करने के लिए उपयुक्त है। आप भी यूनिक्स जैसे OS पर Python System Information या Windows के लिए pywin32 जैसी किसी चीज़ का उपयोग कर सकते हैं ।

अगर आप OS की देखभाल करना चाहते हैं तो अधिक गहराई से निरीक्षण करना चाहते हैं तो Psutil भी है ।


6

अधिक विस्तृत जानकारी platformमॉड्यूल में उपलब्ध है ।


क्या platformमॉड्यूल का कोई फायदा है sys.platform? मैं किस दृष्टिकोण का उपयोग करना चाहूंगा?
मैट

@ मैंथ: आपको platformमॉड्यूल से अधिक विस्तृत, संरचित जानकारी मिलती है । बस प्रलेखन के लिए लिंक पर क्लिक करें।
स्वेन मार्नाच

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.