我找到了平台模块,但它说它返回'Windows',它在我的机器上返回'Microsoft'。我注意到在stackoverflow上的另一个线程有时会返回'Vista'。
问题是,如何实现?
if is_windows():
...
以一种向前兼容的方式?如果我必须检查像“Vista”这样的东西,那么当windows的下一个版本出来时,它就会崩溃。
注意:声称这是一个重复问题的答案实际上并没有回答is_windows问题。他们回答了“什么平台”的问题。由于存在多种类型的窗口,没有一种能够全面描述如何获得isWindows的答案。
你用的是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.
如果还不行,可以试试平台。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中检查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]