Ətraf mühitdə işləyən Python OS və versiyası haqqında məlumat əldə edin.

Biznes

Standart kitabxana platforması modulu, Python -un işlədiyi əməliyyat sistemi və onun versiyası (buraxılışı) haqqında məlumat almaq üçün istifadə olunur. Bu moduldan istifadə edərək hər bir OS və versiya üçün prosesi dəyişdirmək mümkündür.

Aşağıdakı məlumatlar burada verilir.

  • OS adını əldə edin:platform.system()
  • Versiya (buraxılış) məlumatını əldə edin:platform.release(),version()
  • Bir anda OS və versiyasını əldə edin:platform.platform()
  • Hər bir OS üçün nəticə nümunələri
    • macOS
    • Windows
    • Ubuntu
  • OS -dən asılı olaraq işlənməni dəyişdirmək üçün nümunə kod

Çalışdığınız Python versiyasını bilmək istəyirsinizsə, aşağıdakı məqaləyə baxın.

İlk yarıda bütün nümunə kodlar macOS Mojave 10.14.2; Windows və Ubuntu üzrə nümunə nəticələr ikinci yarıda göstərilir; Əməliyyat sisteminə xas funksiyalar ikinci yarıda da müzakirə olunur.

Əməliyyat sistemi adını əldə edin: platform.system ()

Əməliyyat sisteminin adı platform.system () tərəfindən əldə edilir. Dönüş dəyəri bir simdir.

import platform

print(platform.system())
# Darwin

Versiya (buraxılış) məlumatını əldə edin: platform.release (), version ()

OS versiyası (buraxılış) məlumatları aşağıdakı funksiyalarla əldə edilir. Hər iki halda, qaytarma dəyəri bir simdir.

  • platform.release()
  • platform.version()

Aşağıdakı nümunədə göstərildiyi kimi, platform.release () daha sadə məzmunlar qaytarır.

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

Bir anda OS və versiyasını əldə edin: platform.platform ()

OS adı və versiya (buraxılış) məlumatı platform.platform () istifadə edərək birlikdə əldə edilə bilər. Dönüş dəyəri bir simdir.

print(platform.platform())
# Darwin-18.2.0-x86_64-i386-64bit

Ters arqumentinin dəyəri TRUE olarsa, yalnız minimal məlumatlar geri qaytarılacaq.

print(platform.platform(terse=True))
# Darwin-18.2.0

Ləqəbli bir mübahisə də var.

print(platform.platform(aliased=True))
# Darwin-18.2.0-x86_64-i386-64bit

Nəticə nümunə mühitində eynidır, lakin bəzi əməliyyat sistemləri OS adı olaraq bir ləqəb qaytaracaq.

Alias ​​doğru olarsa, nəticəni sistemin ümumi adı əvəzinə takma ad istifadə edərək qaytarır. Məsələn, SunOS Solaris olur.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation

Hər bir OS üçün nəticə nümunələri

MacOS, Windows və Ubuntu üzrə nəticələrin nümunələri və OS-yə xas funksiyalar göstəriləcək.

macOS

MacOS Mojave 10.14.2 -də nəticə nümunəsi. Yuxarıda göstərilən nümunə ilə eyni.

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 və ya Mojave deyil, Darvinin olduğunu unutmayın.
Darvin haqqında daha çox məlumat üçün Vikipediya səhifəsinə baxın. Ən son versiya nömrəsi ilə macOSdakı ad arasındakı yazışmaların da təsviri var.

Platform.mac_ver () adlı madOSa xas bir funksiya var.
Dönüş dəyəri bir tuple (buraxılış, versioninfo, maşın) kimi qaytarılır.
Nümunə mühitində, versiya məlumatı bilinmir və boş bir simli tupdur.

print(platform.mac_ver())
# ('10.14.2', ('', '', ''), 'x86_64')

Windows

Windows 10 Evdəki nəticələr nümunəsi.

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 () qaytarma dəyərinin 10 tam deyil, bir simli olduğunu unutmayın.

Platform.win32_ver () adlı Windows üçün xüsusi bir funksiya var.
Qayıdış dəyəri bir tuple olaraq qaytarılır (buraxılış, versiya, csd, ptype).
csd xidmət paketinin vəziyyətini göstərir.

print(platform.win32_ver())
# ('10', '10.0.17763', 'SP0', 'Multiprocessor Free')

Ubuntu

Ubuntu 18.04.1 LTS -də nəticə nümunəsi.

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 üçün xüsusi bir platforma var.linux_distribution ().
Qayıdış dəyəri tuple (distname, version, id) kimi qaytarılır.

print(platform.linux_distribution())
# ('Ubuntu', '18.04', 'bionic')

Qeyd edək ki, platform.linux_distribution () Python 3.8 -də silinib. Bunun əvəzinə pip istifadə edərək ayrıca quraşdırılması lazım olan üçüncü tərəf kitabxana dağıtımını istifadə etmək tövsiyə olunur.

OS -dən asılı olaraq işlənməni dəyişdirmək üçün nümunə kod

ƏS -dən asılı olaraq istifadə ediləcək funksiya və ya metodu dəyişdirmək istəyirsinizsə, dəyəri təyin etmək üçün platform.system () kimi bir üsuldan istifadə edə bilərsiniz.

Aşağıdakı bir faylın yaradılma tarixini əldə etmək nümunəsidir.

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

Bu nümunədə platform.system () dəyəri əvvəlcə Windows və ya digər olub olmadığını müəyyən etmək üçün istifadə olunur.
Daha sonra, st_birthtime atributunun mövcud olduğu vəziyyətlə digər hallar arasında prosesi dəyişdirmək üçün istisna işlənməsindən istifadə edir.

Copied title and URL