求一段python代码
可以区分宿主os类型其他的不需要,能区分win7 win10 win11
就行 你可以使用platform库来检测操作系统。以下是一个简单的示例:
import platform
def get_os_version():
os_type = platform.system()
if os_type == 'Windows':
os_version = platform.version()
if os_version.startswith('6.1'):
return 'Windows 7'
elif os_version.startswith('10.0'):
return 'Windows 10'
elif os_version.startswith('10.0.22000'):
return 'Windows 11'
else:
return 'Unknown Windows version'
else:
return 'Not a Windows operating system'
os_version = get_os_version()
print(f'当前操作系统: {os_version}')
这段代码首先导入platform库,然后使用platform.system()函数来检测操作系统类型。如果是Windows操作系统,它将使用platform.version()函数来获取操作系统的版本信息,并根据版本号来区分Windows 7、Windows 10和Windows 11。如果无法识别版本号,它将返回 "Unknown Windows version"。如果不是Windows操作系统,它将返回 "Not a Windows operating system"。 实际是10.0.22621.1555
该如何通用呢 isdkz 发表于 2023-4-17 13:26
你可以使用platform库来检测操作系统。以下是一个简单的示例:
另一版:10.0.22621.819 wp231957 发表于 2023-4-17 14:10
另一版:10.0.22621.819
可以通过检查操作系统的内部版本号(也称为 "build number")来解决这个问题。
代码修改如下:
import platform
def get_os_version():
os_type = platform.system()
if os_type == 'Windows':
os_version = platform.version()
if os_version.startswith('6.1'):
return 'Windows 7'
elif os_version.startswith('10.0'):
build_number = int(os_version.split('.'))
if build_number < 22000:
return 'Windows 10'
else:
return 'Windows 11'
else:
return 'Unknown Windows version'
else:
return 'Not a Windows operating system'
os_version = get_os_version()
print(f'当前操作系统: {os_version}')
在这个修正后的代码中,将 Windows 操作系统的版本信息分割成三部分,然后将内部版本号转换为整数。
之后,检查内部版本号是否小于 22000。如果小于 22000,则认为是 Windows 10;否则,认为是 Windows 11。
这样我们就可以正确区分 Windows 10 和 Windows 11 了。 isdkz 发表于 2023-4-17 14:16
可以通过检查操作系统的内部版本号(也称为 "build number")来解决这个问题。
代码修改如下:
我这样当做一个包 使用没问题吧
import platform
def get_os_version():
os_type = platform.system()
if os_type == 'Windows':
os_version = platform.version()
if os_version.startswith('6.1'):
return 7
elif os_version.startswith('10.0'):
build_number = int(os_version.split('.'))
if build_number < 22000:
return 10
else:
return 11
else:
return 0
else:
return 0
在另一个py中import version
然后用version.get*****() 调用
还需要注意什么吗 wp231957 发表于 2023-4-17 14:25
我这样当做一个包 使用没问题吧
没问题,如果你需要区分未知的windows版本和非windows的话,这两个返回值最好不要都是0
else:
return 0
else:
return 0
isdkz 发表于 2023-4-17 14:31
没问题,如果你需要区分未知的windows版本和非windows的话,这两个返回值最好不要都是0
else: ...
我使用环境没那么复杂
出现bug再改
页:
[1]