ماژول پلت فرم کتابخانه استاندارد برای بدست آوردن اطلاعات در مورد سیستم عاملی که پایتون بر روی آن کار می کند و نسخه آن (انتشار) استفاده می شود. با استفاده از این ماژول ، امکان تغییر فرایند برای هر سیستم عامل و نسخه وجود دارد.
اطلاعات زیر در اینجا ارائه شده است.
- نام سیستم عامل را دریافت کنید:
platform.system()
- دریافت اطلاعات نسخه (انتشار):
platform.release()
،version()
- سیستم عامل و نسخه را به طور همزمان دریافت کنید:
platform.platform()
- نمونه هایی از نتایج برای هر سیستم عامل
- macOS
- Windows
- Ubuntu
- کد نمونه برای تغییر پردازش بسته به سیستم عامل
اگر می خواهید نسخه پایتون در حال اجرا را بدانید ، مقاله زیر را ببینید.
تمام کد نمونه در نیمه اول در macOS Mojave 10.14.2 اجرا می شود. نتایج نمونه در ویندوز و اوبونتو در نیمه دوم نشان داده شده است. عملکردهای خاص سیستم عامل نیز در نیمه دوم مورد بحث قرار گرفته است.
نام سیستم عامل را دریافت کنید: 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
اگر مقدار آرگومان terse TRUE باشد ، تنها حداقل اطلاعات برگشت داده می شود.
print(platform.platform(terse=True))
# Darwin-18.2.0
همچنین یک بحث مستعار وجود دارد.
print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit
نتیجه در محیط مثال یکسان است ، اما برخی از سیستم عامل ها نام مستعار را به عنوان نام سیستم عامل نشان می دهند.
اگر نام مستعار درست باشد ، نتیجه را با استفاده از نام مستعار به جای نام رایج سیستم برمی گرداند. به عنوان مثال ، SunOS تبدیل به Solaris می شود.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation
نمونه هایی از نتایج برای هر سیستم عامل
نمونه هایی از نتایج در 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 () نامیده می شود.
مقدار بازگشتی به صورت یک تاپل (release، versioninfo، machine) بازگردانده می شود.
در محیط مثال ، 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 یک رشته است ، نه یک عدد صحیح.
یک تابع مخصوص ویندوز به نام platform.win32_ver () وجود دارد.
مقدار بازگشتی به صورت یک تاپل (نسخه ، نسخه ، csd ، ptype) بازگردانده می شود.
csd وضعیت بسته سرویس را نشان می دهد.
print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')
اوبونتو
نمونه ای از نتیجه در اوبونتو 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
یک تابع مخصوص یونیکس وجود دارد platform.linux_distribution ().
مقدار بازگشتی به صورت یک تاپل (distname ، version ، id) بازگردانده می شود.
print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')
توجه داشته باشید که platform.linux_distribution () در پایتون 3.8 حذف شده است. توصیه می شود از کتابخانه شخص ثالث به جای آن استفاده کنید ، که باید جداگانه با استفاده از pip نصب شود.
کد نمونه برای تغییر پردازش بسته به سیستم عامل
اگر می خواهید عملکرد یا روش مورد استفاده را بسته به سیستم عامل تغییر دهید ، می توانید از متدی مانند 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 وجود دارد و سایر موارد تغییر دهد.