পাইথনে অপারেটিং সিস্টেমটি কীভাবে চেক করব?


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

বৈধ মানগুলির জন্য, ডকুমেন্টেশনের সাথে পরামর্শ করুন

"আমি কী ওএস চালাচ্ছি?" এর উত্তরটি দেখুন


8
মনে রাখবেন সাইগউইন-এ, কেউ প্রত্যাশা "cygwin"না করে ফিরে আসে "win32"
মিশা বেন্টকভস্কি

21
ধন্যবাদ। লিনাক্স এবং লিনাক্স 2 এর মধ্যে পার্থক্য কী?
থারিন্ডু রুশিরা

1
বিএসডির আউটপুট কী হবে?
galois

1
দ্রষ্টব্য যে পাইথন ৩.৩ থেকে "linux2"এখন আর কোনও সম্ভাব্য মান নয় platform(সংযুক্তির জন্য লিঙ্কযুক্ত ডকস দেখুন) এবং তাই যদি আপনাকে কেবল পাইথন ৩.৩ সমর্থন করতে হয় এবং পরে আপনি নিরাপদে from বা প্ল্যাটফর্ম == "লিনাক্স 2" use ধারাটি মুছতে পারেন প্রথম শর্ত
মার্ক আমেরি

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
@ ব্র্যান্ডনবেইনফিল্ড, গণনাটি সম্ভাব্য মানের একটি উদাহরণ। অ্যাপল ডিভাইসে, এটি "ডারউইন" ফেরত দেয়।
লরেন্ট LAPORTE

15

আপনি যে ওএসটি ব্যবহার করছেন তা যাচাই করে দেখে আপনি একটি সুন্দর মোটা ধারণা পেতে পারেন sys.platform

আপনার কাছে সেই তথ্যটি একবার হয়ে গেলে আপনি এটি নির্ধারণ করতে ব্যবহার করতে পারেন যে এরকম কোনও কল করা os.uname()আরও নির্দিষ্ট তথ্য সংগ্রহের জন্য উপযুক্ত কিনা determine আপনি উইন্ডোজের জন্য ইউনিক্স-এর মতো ওএসগুলিতে পাইথন সিস্টেম তথ্যের মতো কিছু ব্যবহার করতে পারেন , বা পাইউইন 32

এছাড়াও আছে ওএস সম্পর্কে যত্ন না নেওয়ার জন্য যদি আপনি গভীরতাপূর্ণ পরিদর্শন করতে চান তবে সিসুটিলও রয়েছে


6

platformমডিউলটিতে আরও বিশদ তথ্য পাওয়া যায় ।


না platformমডিউল এর বেশী কোনো সুবিধা sys.platform? আমি কখন কোন পদ্ধতিটি ব্যবহার করতে চাই?
ম্যাথ

@ মমথ: আপনি platformমডিউল থেকে আরও বিশদ, কাঠামোগত তথ্য পাবেন । ডকুমেন্টেশনের জন্য কেবল লিঙ্কটি ক্লিক করুন।
সোভেন মারনাচ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.