Как я проверяю, работаю ли я на Windows в Python? [дубликат]

192
задан dreftymac 16 September 2019 в 06:56
поделиться

4 ответа

Python os модуль

Специально для Python 3.6 / 3.7:

os.name : имя рабочего импортирован системно-зависимый модуль. В следующие имена в настоящее время зарегистрировано: 'posix', 'nt', 'java'.

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

import os

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

Также есть примечание о os.name :

См. Также sys.platform имеет более тонкую детализацию. os.uname () дает информация о версии, зависящая от системы.

Модуль платформы предоставляет подробные проверки идентичности системы.

276
ответ дан 23 November 2019 в 05:29
поделиться

Используете ли вы 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 в 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]
50
ответ дан 23 November 2019 в 05:29
поделиться

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

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

редактировать: Теперь Я бы сказал, что самый простой способ сделать это - использовать модуль платформы , согласно другому ответу.

43
ответ дан 23 November 2019 в 05:29
поделиться

тоже в sys:

import sys
# its win32, maybe there is win64 too?
is_windows = sys.platform.startswith('win')
26
ответ дан 23 November 2019 в 05:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: