如果Windows版本低于目标,则终止Python脚本



简介

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

有问题的

所以我想到的第一件事是通过操作系统在python脚本中使用cmd命令。

import os
os.system('for /f "tokens=6 delims=[]. " %%G in ("ver") do if %%G lss 16299 && exit')

其触发";ver";未定义。所以我想用另一种方式来实现这一点;Python式的";

Python式的

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

import sys
sys.getwindowsversion()

上面的代码将导致stdout:

sys.getwindowsversion(major=10, minor=0, build=19041, platform=2, service_pack='')

问题是,由于我的知识限制,我无法从stdout执行任何内容。我计划使用";否则如果";稍后,如果构建版本不满足或低于要求,则使脚本退出。我将脚本的目标设置为windows build=16299.所以我想使用以下内容将stdout转换为字符串:

from io import StringIO
stdout = sys.stdout
s = StringIO()
sys.stdout = s
sys.getwindowsversion()
sys.stdout = stdout
s.seek(0)
s.read()

但它将和以前一样,我不能用stdout做任何事情。我能以某种方式达到规范吗?

要隔离内部版本号:

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。

最新更新