Python: На какой ОС я работаю?

Что мне нужно посмотреть, чтобы увидеть, нахожусь ли я на Windows или Unix и т. Д.?

516
задан Mark Harrison 9 July 2019 в 03:35
поделиться

6 ответов

>>> import os
>>> print os.name
posix
>>> import platform
>>> platform.system()
'Linux'
>>> platform.release()
'2.6.22-15-generic'

вывод platform.system() следующие:

  • Linux: Linux
  • Mac: Darwin
  • Windows: Windows

См.: платформа — Доступ к лежанию в основе platform’s идентификация данных

669
ответ дан Cory Klein 9 July 2019 в 03:35
поделиться

Можно также использовать sys.platform, если Вы уже импортировали sys, и Вы не хотите импортировать другой модуль

>>> import sys
>>> sys.platform
'linux2'
38
ответ дан Moe 9 July 2019 в 03:35
поделиться

Поскольку запись здесь является результатами на Mac:

>>> import os
>>> os.name
'posix'
>>> import platform
>>> platform.system()
'Darwin'
>>> platform.release()
'8.11.1'
121
ответ дан SuperBiasedMan 9 July 2019 в 03:35
поделиться

Блин - lbrandy бьют меня к перфорации, но это не означает, что я не могу предоставить Вам системные результаты для Vista!

>>> import os
>>> os.name
'nt'
>>> import platform
>>> platform.system()
'Windows'
>>> platform.release()
'Vista'

... и я can’t полагают, что никакой one’s еще не отправил один для Windows 10:

>>> import os
>>> os.name
'nt'
>>> import platform
>>> platform.system()
'Windows'
>>> platform.release()
'10'
167
ответ дан Joey deVilla 9 July 2019 в 03:35
поделиться

Я делаю это

import sys
print sys.platform

Документы здесь: sys.platform.

Все, в чем Вы нуждаетесь, находится, вероятно, в sys модуле.

19
ответ дан ggambett 16 September 2019 в 04:16
поделиться

Существует 3 способа получить ОС в Python, каждом с его собственным про и недостатками:

Метод 1

>>> import sys
>>> sys.platform
'win32'  # could be 'linux', 'linux2, 'darwin', 'freebsd8' etc

, Как это работает ( источник ): Внутренне это называет API ОС для получения названия ОС, как определено ОС. Это может, очевидно, измениться от версии до версии, так лучше всего для не использования непосредственно. См. здесь для различных определенных для ОС значений.

Метод 2

>>> import os
>>> os.name
'nt'  # for Linux and Mac it prints 'posix'

, Как это работает ( источник ): Внутренне это проверяет, имеет ли Python определенные для ОС модули, названные posix или nt. Если Вы хотите импортировать эти модули и методы вызова на нем, это работает отлично. Обратите внимание, что нет никакого дифференцирования между Linux или OSX.

Метод 3

>>> import platform
>>> platform.system()
'Windows' # for Linux it prints 'Linux', Mac it prints `'Darwin'

, Как это работает ( источник ): Внутренне это в конечном счете назовет внутренние API ОС, получит собственное имя версии ОС как 'win32' или 'win16' или 'linux1' и затем нормализует к большему количеству родовых названий как 'Windows' или 'Linux' или 'Darwin' путем применения нескольких эвристики. Это - лучший портативный способ получить нормализованное имя ОС.

Сводка

  • , Если Вы хотите проверить, является ли ОС Windows или Linux или OSX затем, самый надежный путь platform.system().
  • , Если Вы хотите выполнить определенные для ОС вызовы, но через встроенные модули Python posix или nt затем использование os.name.
  • , Если Вы хотите получить необработанное имя ОС, как предоставлено самой ОС затем, используют sys.platform.
6
ответ дан 22 November 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: