Как проверить, запущен ли я на Windows в Python?

Я нашел модуль платформы, но он говорит, что он возвращает "Windows", и он возвращает "Microsoft" на мою машину. Я заметил в другом потоке здесь, в stackoverflow, он иногда возвращает "Vista".

Итак, вопрос в том, как сделать implayment?

if isWindows():
  ...

В передовом режиме? Если мне нужно проверить такие вещи, как "Vista", тогда он сломается, когда выйдет следующая версия окон.


Примечание. Ответы, которые утверждают, что это дублированный вопрос, на самом деле не отвечают на вопрос isWindows. Они отвечают на вопрос "какая платформа". Поскольку существует много разновидностей окон, ни один из них не описывает подробно, как получить ответ isWindows.

Ответ 1

Python os модуль

В частности

os.name Название действующего зависящий от системы модуль. следующие имена в настоящее время зарегистрировано: "posix", "nt", "mac", 'os2', 'ce', 'java', 'riscos'.

В вашем случае вы хотите проверить вывод 'nt' как os.name:

import os

if os.name == 'nt':
     ...

Ответ 2

Вы должны уметь полагаться на os.name.

import os
if os.name == 'nt':
    # ...

edit: теперь я бы сказал, что самый ясный способ сделать это через модуль platform, согласно другому ответу.

Ответ 3

Используете ли вы platform.system?

 system()
        Returns the system/OS name, e.g. 'Linux', 'Windows' or 'Java'.

        An empty string is returned if the value cannot be determined.

Если это не работает, возможно, попробуйте platform.win32_ver, и если он не вызывает исключения, вы находитесь в Windows; но я не знаю, совместима ли эта переадресация с 64-битной, так как она имеет 32 в имени.

win32_ver(release='', version='', csd='', ptype='')
        Get additional version information from the Windows Registry
        and return a tuple (version,csd,ptype) referring to version
        number, CSD level and OS type (multi/single
        processor).

Но os.name - это, вероятно, путь, о котором говорили другие.


Для чего это стоит, несколько способов проверки Windows на платформе .py:
if sys.platform == 'win32':
#---------
if os.environ.get('OS','') == 'Windows_NT':
#---------
try: import win32api
#---------
# Emulation using _winreg (added in Python 2.0) and
# sys.getwindowsversion() (added in Python 2.3)
import _winreg
GetVersionEx = sys.getwindowsversion
#----------
def system():

    """ Returns the system/OS name, e.g. 'Linux', 'Windows' or 'Java'.    
        An empty string is returned if the value cannot be determined.   
    """
    return uname()[0]

Ответ 4

в sys тоже:

import sys
# its win32, maybe there is win64 too?
is_windows = sys.platform.startswith('win')

Ответ 5

import platform
is_windows = any(platform.win32_ver())

или

import sys
is_windows = hasattr(sys, 'getwindowsversion')