首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果Windows版本小于目标,Python脚本将终止

如果Windows版本小于目标,Python脚本将终止
EN

Stack Overflow用户
提问于 2020-11-03 10:14:36
回答 1查看 69关注 0票数 0

引言

嗨,我是Python新手。我一直在努力解决当前的问题。我似乎在任何地方都找不到关于这个问题的结果。我已经尝试了几种方法来实现这一点,我们将在有问题的部分讨论。

成问题

因此,我首先想到的是通过os在python脚本中使用cmd命令。

代码语言:javascript
复制
import os
os.system('for /f "tokens=6 delims=[]. " %%G in ("ver") do if %%G lss 16299 && exit')

它的琐碎"ver“没有定义。所以我想用另一种方式来实现这个“毕思罗”

毕斯东

好的,在python中,我可以通过以下操作来检查windows构建版本:

代码语言:javascript
复制
import sys
sys.getwindowsversion()

上面的代码将产生stdout:

代码语言:javascript
复制
sys.getwindowsversion(major=10, minor=0, build=19041, platform=2, service_pack='')

问题是,由于我的知识有限,我不能从那个标准中执行任何事情。如果构建版本没有满足或低于要求,我计划稍后使用"else if“来使脚本退出。我正在把脚本升级到windows build=16299..。因此,我考虑使用以下方法将stdout转换为string:

代码语言:javascript
复制
from io import StringIO
        stdout = sys.stdout
        s = StringIO()
        sys.stdout = s
        sys.getwindowsversion()
        sys.stdout = stdout
        s.seek(0)
        s.read()

但是它将是一样的,我不能做任何事情的标准。不知何故,我能达到规格吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-03 10:57:15

要隔离版本号,请执行以下操作:

代码语言:javascript
复制
winver = str(sys.getwindowsversion()).split(', ')
for i in winver:
    if 'build=' in i:
        build_lst = [winver[i] for i in [winver.index(i)]]
build_num = int(" ".join(str(i) for i in build_lst)[6:])

'winver‘变量是列表形式的sys.getwindowsversion()。为winver中的每个元素搜索字符串“build=”。从该元素的索引中创建一个新字符串并隔离整数。最后一个变量存储为build_num。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64660803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档