تُستخدم وحدة النظام الأساسي للمكتبة القياسية للحصول على معلومات حول نظام التشغيل الذي يعمل عليه Python وإصداره (الإصدار). باستخدام هذه الوحدة ، من الممكن تبديل العملية لكل نظام تشغيل وإصدار.
يتم توفير المعلومات التالية هنا.
- احصل على اسم نظام التشغيل:
platform.system()
- الحصول على معلومات الإصدار (الإصدار):
platform.release()
وversion()
- احصل على نظام التشغيل والإصدار مرة واحدة:
platform.platform()
- أمثلة على نتائج كل نظام تشغيل
- macOS
- Windows
- Ubuntu
- عينة رمز لتبديل المعالجة حسب نظام التشغيل
إذا كنت تريد معرفة إصدار Python الذي تقوم بتشغيله ، فراجع المقالة التالية.
- مقالات ذات صلة:تحقق من إصدار Python واعرضه (مثل sys.version)
يتم تشغيل جميع نماذج التعليمات البرمجية في النصف الأول على macOS Mojave 10.14.2 ؛ تظهر نتائج الأمثلة على Windows و Ubuntu في النصف الثاني ؛ كما تمت مناقشة الوظائف الخاصة بنظام التشغيل في النصف الثاني.
احصل على اسم نظام التشغيل: platform.system ()
يتم الحصول على اسم نظام التشغيل من خلال 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
احصل على نظام التشغيل والإصدار مرة واحدة: platform.platform ()
يمكن الحصول على معلومات اسم وإصدار نظام التشغيل (الإصدار) معًا باستخدام platform.platform (). القيمة المعادة هي سلسلة.
print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit
إذا كانت قيمة الوسيطة المقتضبة هي TRUE ، فسيتم إرجاع الحد الأدنى من المعلومات فقط.
print(platform.platform(terse=True))
# Darwin-18.2.0
هناك أيضا حجة مستعارة.
print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit
والنتيجة هي نفسها في بيئة المثال ، ولكن بعض أنظمة التشغيل ستعيد اسمًا مستعارًا كاسم نظام التشغيل.
إذا كان الاسم المستعار صحيحًا ، فسيتم إرجاع النتيجة باستخدام اسم مستعار بدلاً من الاسم الشائع للنظام. على سبيل المثال ، تصبح SunOS سولاريس.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation
أمثلة على نتائج كل نظام تشغيل
سيتم عرض أمثلة على النتائج على macOS و Windows و Ubuntu ، بالإضافة إلى الوظائف الخاصة بنظام التشغيل.
macOS
مثال على النتيجة على 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.
هناك وظيفة خاصة بـ madOS تسمى platform.mac_ver ().
يتم إرجاع القيمة المعادة على هيئة مجموعة (الإصدار ، معلومات الإصدار ، الجهاز).
في بيئة المثال ، فإن versioninfo غير معروفة وهي مجموعة سلسلة فارغة.
print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')
شبابيك
مثال على النتائج على 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
لاحظ أن القيمة المعادة 10 لـ platform.release () هي سلسلة وليست عددًا صحيحًا.
هناك وظيفة خاصة بـ Windows تسمى platform.win32_ver ().
يتم إرجاع القيمة المعادة على هيئة مجموعة (إصدار ، إصدار ، csd ، نوع ptype).
يشير csd إلى حالة حزمة الخدمة.
print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')
أوبونتو
مثال على النتيجة على 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
توجد منصة وظائف خاصة بـ Unix.linux_distribution ().
يتم إرجاع القيمة المعادة كمجموعة (distname ، الإصدار ، المعرف).
print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')
لاحظ أنه تمت إزالة platform.linux_distribution () في Python 3.8. يوصى باستخدام توزيعة مكتبة الطرف الثالث بدلاً من ذلك ، والتي يجب تثبيتها بشكل منفصل باستخدام النقطة.
عينة رمز لتبديل المعالجة حسب نظام التشغيل
إذا كنت تريد تبديل الوظيفة أو الطريقة التي سيتم استخدامها وفقًا لنظام التشغيل ، فيمكنك استخدام طريقة مثل 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
في هذا المثال ، يتم استخدام قيمة platform.system () أولاً لتحديد ما إذا كان نظام التشغيل Windows أو غيره.
بعد ذلك ، يستخدم أيضًا معالجة الاستثناءات لتبديل العملية بين الحالة التي توجد فيها سمة st_birthtime والحالات الأخرى.