Как проверить, если я работаю на Windows в Python? [дубликат]
этот вопрос уже есть ответ здесь:
Python:на какой ОС я работаю?
23 ответов
Я нашел модуль платформы, но он говорит, что он возвращает "Windows", и он возвращает "Microsoft" на моей машине. Я замечаю, что в другом потоке здесь на stackoverflow он иногда возвращает "Vista".
Итак, вопрос в том, как сделать имплементацию?
if isWindows():
...
в режиме совместимости как? Если мне нужно проверить такие вещи, как "Vista", то он сломается, когда выйдет следующая версия windows.
Примечание: ответы, утверждающие, что это дублирующий вопрос, на самом деле не отвечают на вопрос isWindows. Они отвечают на вопрос "какая платформа". Поскольку многие ароматы windows существуют, ни один из них не описывает всесторонне, как получить ответ isWindows.
5 ответов:
Python os модуль
конкретно
os.name название операционной системы зависимого модуля системы импортного производства. Этот в настоящее время такие имена были зарегистрирован: 'posix', 'nt', 'mac', 'os2', 'ce', 'java', 'riscos'.
в вашем случае, вы хотите проверить 'nt' как
os.nameвыход:import os if os.name == 'nt': ...
вы используете
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вероятно, это путь, как уже упоминали другие.
Для чего это стоит, вот несколько способов, которыми они проверяют окна 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')
Comments