Как проверить операционную систему в Python? - PullRequest
113 голосов
/ 22 ноября 2011

Я хочу проверить операционную систему (на компьютере, на котором выполняется скрипт).

Я знаю, что могу использовать os.system('uname -o') в Linux, но он выдает мне сообщение в консоли, и я хочудля записи в переменную.

Будет нормально, если скрипт скажет, Mac это, Windows или Linux.Как я могу это проверить?

Ответы [ 6 ]

231 голосов
/ 22 ноября 2011

Вы можете использовать sys.platform:

from sys import platform
if platform == "linux" or platform == "linux2":
    # linux
elif platform == "darwin":
    # OS X
elif platform == "win32":
    # Windows...

sys.platform имеет более тонкую гранулярность, чем sys.name.

. Для правильных значений обратитесь к документация .

15 голосов
/ 22 ноября 2011

Вы можете получить довольно грубое представление об используемой ОС, отметив sys.platform.

Получив эту информацию, вы можете использовать ее, чтобы определить, подходит ли для вызова что-то вроде os.uname() для сбора более конкретной информации. Вы также можете использовать что-то вроде Информация о системе Python в Unix-подобных ОС или pywin32 для Windows.

Существует также psutil , если вы хотите провести более углубленную проверку, не заботясь об ОС.

14 голосов
/ 08 октября 2017

Если вы хотите узнать, на какой платформе вы находитесь: «Linux», «Windows» или «Darwin» (Mac) без большей точности, вы должны использовать:

>>> import platform
>>> platform.system()
'Linux'  # or 'Windows'/'Darwin'

platform.system использование функции uname внутри.

7 голосов
/ 22 ноября 2011

Более подробная информация доступна в platform модуле .

3 голосов
/ 22 ноября 2011

Вы можете использовать sys.platform.

0 голосов
/ 05 сентября 2016

Похоже, что существует некоторая противоречивая информация о том, как Windows идентифицирует.Некоторые источники говорят «Windows», а другие - «win32».

Имея это в виду ...

from sys import platform

if "win" in platform.lower():
    print platform

win32

Это может быть правдой в Cygwin.Но вы всегда можете добавить проверку, чтобы убедиться, что «cy» там нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...