繁体   English   中英

Python 查找不同的 Windows 版本

[英]Python find different Windows versions

我正在寻找使用 Python 脚本的 Windows 版本。 我需要将版本输出到一个变量,以便我可以根据 Windows 版本执行命令。 到目前为止,我在 python 中有这个代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import wmi
import wx

conn = wmi.WMI()
app = wx.App()

for caption in conn.Win32_OperatingSystem():
    print("\nOS:", caption.Caption)

if caption.Caption == 'Microsoft Windows 7 Enterprise':
    print("Wrong Windows version")
    
if caption.Caption == 'Microsoft Windows 10 Enterprise':
    print("This is the correct Windows version")
    
wx.MessageBox(f'OS Version: {caption.Caption}', 'Operating System', wx.OK | wx.ICON_INFORMATION)

我使用 autopy 打包此代码,它在分配了输出的 Win10 上正确运行。 当我在 Win7 上运行相同的包时,它不会在 Windows 7 的“if”语句中返回任何内容。我使用 Python 3.8 和 wxPython 4.0.7 都让我在 Win10 或 Win7 上作为 exe 运行没有问题。 我只需要它在 Windows 7“错误的 Windows 版本”上输出,所以我知道语句是否适用于 Win7。

为了使 Wmi32 输出字符串在 Win7 设备上正确分配变量,您需要更改

if caption.Caption == 'Microsoft Windows 7 Enterprise':
    print("Wrong Windows version")

if caption.Caption == 'Microsoft Windows 7 Enterprise ':
    print("Wrong Windows version")

您需要在 Enterprise 之后添加一个额外的空间。 这解决了我的问题。 现在脚本将在 Win10 和 Win7 中运行 if 语句。 https://www.jonathanmedd.net/2012/02/wmi-class-win32_operatingsystem-caption-property-may-contain-a-trailing-space.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM