Как проверить операционную систему на Python?

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

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

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

Ответ 1

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

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

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

Ответ 2

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

Как только у вас есть эта информация, вы можете использовать ее, чтобы определить, подходит ли для вызова более точной информации os.uname(). Вы также можете использовать что-то вроде Python System Information на unix-подобных операционных системах, или pywin32 для Windows.

Там также psutil, если вы хотите сделать более углубленный осмотр, не заботясь о ОС.

Ответ 3

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

Ответ 4

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

Ответ 5

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

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

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

Ответ 6

Кажется, есть некоторая противоречивая информация о том, как идентифицируется Windows. Некоторые источники говорят "Windows", а другие источники говорят "win32".

С учетом этого...

from sys import platform

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

win32

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