Добијте информације о оперативном систему и верзији Питхон -а који раде у окружењу.

Бусинесс

Модул стандардне библиотечке платформе користи се за добијање информација о оперативном систему на којем је Питхон покренут и његовој верзији (издању). Помоћу овог модула могуће је променити процес за сваки ОС и верзију.

Овде су наведене следеће информације.

  • Добијте назив ОС:platform.system()
  • Преузмите информације о верзији (издању):platform.release(),version()
  • Набавите ОС и верзију одједном:platform.platform()
  • Примери резултата за сваки ОС
    • macOS
    • Windows
    • Ubuntu
  • Узорак кода за пребацивање обраде у зависности од ОС -а

Ако желите да знате верзију Питхона коју користите, погледајте следећи чланак.

Сав узорак кода у првом полувремену ради на мацОС Мојаве 10.14.2; примери резултата за Виндовс и Убунту приказани су у другој половини; О функцијама специфичним за ОС такође се говори у другој половини.

Набавите назив ОС: платформ.систем ()

Име ОС -а се добија помоћу платформ.систем (). Повратна вредност је низ.

import platform

print(platform.system())
# Darwin

Добијте информације о верзији (издању): платформ.релеасе (), версион ()

Информације о верзији ОС (издању) добијају се са следећим функцијама. У оба случаја, повратна вредност је стринг.

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

Као што је приказано у следећем примеру, платформ.релеасе () враћа једноставније садржаје.

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

Ако је вредност аргумента краћи ТРУЕ, биће враћене само минималне информације.

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

Постоји и аргумент под псеудонимом.

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

Резултат је исти у примјеру окружења, али неки оперативни системи ће вратити псеудоним као име ОС -а.

Ако је псеудоним истинит, враћа резултат користећи псеудоним уместо уобичајеног имена система. На пример, СунОС постаје Соларис.
platform.platform() — Access to underlying platform’s identifying data — Python 3.10.0 Documentation

Примери резултата за сваки ОС

Биће приказани примери резултата за мацОС, Виндовс и Убунту, као и функције специфичне за ОС.

мацОС

Пример резултата на мацОС Мојаве 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

Имајте на уму да је то Дарвин, а не мацОС или Мојаве.
За више информација о Дарвину погледајте страницу Википедиа. Постоји и опис преписке између броја најновије верзије и имена у мацОС -у.

Постоји функција специфична за мадОС која се зове платформ.мац_вер ().
Враћена вредност се враћа као комплет (издање, информације о верзији, машина).
У окружењу примера, версионинфо је непознат и празан је низ елемената.

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

Виндовс

Пример резултата на Виндовс 10 Хоме.

print(platform.system())
# Windows

print(platform.release())
# 10

print(platform.version())
# 10.0.17763

print(platform.platform())
# Windows-10-10.0.17763-SP0

Имајте на уму да је повратна вредност 10 платформ.релеасе () стринг, а не цео број.

Постоји функција специфична за Виндовс која се зове платформ.вин32_вер ().
Враћена вредност се враћа као тупле (издање, верзија, цсд, птипе).
цсд означава статус сервисног пакета.

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

Убунту

Пример резултата на Убунту 18.04.1 ЛТС.

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

Постоји Уник-специфична платформа функција.линук_дистрибутион ().
Враћена вредност се враћа као тупле (дистнаме, версион, ид).

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

Имајте на уму да је платформ.линук_дистрибутион () уклоњен у Питхону 3.8. Уместо тога, препоручује се коришћење дистрикта библиотеке треће стране, коју је потребно засебно инсталирати помоћу пипа.

Узорак кода за пребацивање обраде у зависности од ОС -а

Ако желите да промените функцију или метод који ће се користити у зависности од ОС -а, можете користити методу као што је платформ.систем () да бисте одредили вредност.

Следи пример добијања датума креирања датотеке.

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

У овом примеру, вредност платформ.систем () се прво користи да би се утврдило да ли је Виндовс или други.
Затим, даље користи руковање изузецима за пребацивање процеса између случаја где постоји атрибут ст_биртхтиме и других случајева.