Как я могу проверить, работаю ли я на Windows в Python?
Я нашел модуль платформы, но он говорит, что он возвращает "Windows", и он возвращает "Microsoft" на моем компьютере. Я заметил, что в другом потоке здесь на stackru он возвращает 'Vista' иногда.
Итак, вопрос в том, как реализовать?
if isWindows():
...
Вперед совместимым способом? Если мне придется проверять такие вещи, как "Vista", то он сломается, когда выйдет следующая версия Windows.
Примечание: ответы, утверждающие, что это дублирующий вопрос, на самом деле не отвечают на вопрос isWindows
, Они отвечают на вопрос "какая платформа". Поскольку существует множество разновидностей окон, ни один из них не описывает подробно, как получить ответ isWindows
,
5 ответов
Python OS модуль
Специально для Python 3.6/3.7:
os.name
Имя импортированного модуля, зависящего от операционной системы. В настоящее время зарегистрированы следующие имена: "posix", "nt", "java".
В вашем случае, вы хотите проверить для 'nt' как os.name
выход:
import os
if os.name == 'nt':
...
Также есть примечание os.name
:
Смотрите также
sys.platform
имеет более тонкую зернистость.os.uname()
дает системно-зависимую информацию о версии.Модуль платформы предоставляет подробные проверки для идентификации системы.
Ты используешь platform.system
?
Система () Возвращает имя системы / ОС, например, "Linux", "Windows" или "Java". Пустая строка возвращается, если значение не может быть определено.
Если это не работает, возможно, попробуйтеplatform.win32_ver
и если это не вызывает исключения, вы находитесь на Windows; но я не знаю, совместимо ли это с 64-битной версией, так как в названии есть 32.
win32_ver (release = '', version = '', csd = '', ptype = '') Получить дополнительную информацию о версии из реестра Windows и вернуть кортеж (version,csd,ptype) со ссылкой на версию номер, уровень CSD и тип ОС (мульти / одиночный процессор).
Ноos.name
это, вероятно, путь, как уже упоминали другие.
Для чего стоит, вот несколько способов проверки Windows в platform.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]
В sys тоже:
import sys
# its win32, maybe there is win64 too?
is_windows = sys.platform.startswith('win')
import platform
is_windows = any(platform.win32_ver())
или же
import sys
is_windows = hasattr(sys, 'getwindowsversion')