26

Python とpywin32またはwxPythonを使用して、最も簡単な方法で Windows XP と Windows Vista を区別するにはどうすればよいでしょうか?

基本的に、現在の OS が Vista の場合に True を返す関数が必要です。

>>> isWindowsVista()
True
4

5 に答える 5

42

Python には、便利な「プラットフォーム」モジュールがあります。

>>> import platform
>>> platform.win32_ver()
('XP', '5.1.2600', 'SP2', 'Multiprocessor Free')
>>> platform.system()
'Windows'
>>> platform.version()
'5.1.2600'
>>> platform.release()
'XP'

注: コメントで述べたように、古いバージョンの Python を使用すると、適切な値が返されない場合があります。

于 2008-10-14T06:10:23.367 に答える
8

私が見つけた最も簡単な解決策はこれです:

import sys

def isWindowsVista():
    '''Return True iff current OS is Windows Vista.'''
    if sys.platform != "win32":
        return False
    import win32api
    VER_NT_WORKSTATION = 1
    version = win32api.GetVersionEx(1)
    if not version or len(version) < 9:
        return False
    return ((version[0] == 6) and 
            (version[1] == 0) and
            (version[8] == VER_NT_WORKSTATION))
于 2008-10-13T07:35:25.130 に答える
8

pywin32 を必要としない Twisted で使用されるソリューション:

def isVista():
    if getattr(sys, "getwindowsversion", None) is not None:
        return sys.getwindowsversion()[0] == 6
    else:
        return False

Windows Server 2008 にも一致することに注意してください。

于 2008-10-13T07:55:47.477 に答える
0
import platform
if platform.release() == "Vista":
    # Do something.

また

import platform
if "Vista" in platform.release():
    # Do something.
于 2017-04-01T11:30:57.903 に答える