Programing

Python으로 Windows에서 실행 중인지 어떻게 확인합니까?

lottogame 2020. 5. 15. 07:59
반응형

Python으로 Windows에서 실행 중인지 어떻게 확인합니까? [복제]


이 질문에는 이미 답변이 있습니다.

플랫폼 모듈을 찾았지만 'Windows'를 반환하고 내 컴퓨터에서 'Microsoft'를 반환한다고 말합니다. stackoverflow의 다른 스레드에서 때로는 'Vista'를 반환합니다.

문제는 어떻게 구현 하는가입니다.

if isWindows():
  ...

앞으로 호환되는 방식으로? 'Vista'와 같은 것들을 확인해야한다면 다음 버전의 창이 나올 때 깨질 것입니다.


참고 :이 질문이 중복 질문이라고 주장하는 답변은 실제로 질문에 답변하지 않습니다 isWindows. 그들은 "어떤 플랫폼"이라는 질문에 대답합니다. 많은 종류의 윈도우가 존재하기 때문에 이들 중 어느 것도에 대한 답변을 얻는 방법을 종합적으로 설명하는 것은 없습니다 isWindows.


파이썬 OS 모듈

특히 Python 3.6 / 3.7의 경우 :

os.name: 가져온 운영 체제 종속 모듈의 이름입니다. 현재 등록 된 이름은 'posix', 'nt', 'java'입니다.

귀하의 경우 os.name출력으로 'nt'를 확인하려고합니다 .

import os

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

참고 사항도 있습니다 os.name:

sys.platform더 세밀한 부분 도 참조하십시오 . os.uname()시스템 종속 버전 정보를 제공합니다.

플랫폼 모듈은 시스템의 신원에 대한 자세한 검사를 제공합니다.


사용하고 platform.system있습니까?

 체계()
        시스템 / OS 이름을 반환합니다 (예 : 'Linux', 'Windows'또는 'Java').

        값을 확인할 수 없으면 빈 문자열이 반환됩니다.

그래도 작동 platform.win32_ver하지 않으면 시도 하고 예외가 발생하지 않으면 Windows를 사용하는 것입니다. 그러나 32 비트 이름을 가지고 있기 때문에 64 비트와 호환되는지 알 수 없습니다.

win32_ver (릴리스 = '', 버전 = '', csd = '', ptype = '')
        Windows 레지스트리에서 추가 버전 정보 얻기
        버전을 참조하는 튜플 (version, csd, ptype)을 반환합니다.
        수, CSD 레벨 및 OS 유형 (멀티 / 단일
        프로세서).

그러나 os.name아마도 다른 사람들이 언급했듯이 갈 길입니다.


가치있는 것을 위해 여기 platform.py에서 Windows를 확인하는 몇 가지 방법이 있습니다.

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]

os .name 에 의존 할 수 있어야합니다 .

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

edit: Now I'd say the clearest way to do this is via the platform module, as per the other answer.


in sys too:

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

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

or

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

참고URL : https://stackoverflow.com/questions/1325581/how-do-i-check-if-im-running-on-windows-in-python

반응형