脚本说明
示例代码
# coding:utf-8
import os
import win32api
def compare(a: str, b: str):
"""
:usage: 比较两个版本的大小,需要按.分割后比较各个部分的大小
:param a: 当前文件的版本号
:param b: 要比较的版本号
:return: bool,小于返回False,反之True
"""
lena = len(a.split('.')) # 获取版本字符串的组成部分
lenb = len(b.split('.'))
a2 = a + '.0' * (lenb-lena) # b比a长的时候补全a
b2 = b + '.0' * (lena-lenb)
for i in range(max(lena, lenb)): # 对每个部分进行比较,需要转化为整数进行比较
if int(a2.split('.')[i]) > int(b2.split('.')[i]):
return True
elif int(a2.split('.')[i]) < int(b2.split('.')[i]):
return False
else: # 比较到最后都相等,也返回False
if i == max(lena, lenb)-1:
return True
def getFileVersion(file_name):
info = win32api.GetFileVersionInfo(file_name, os.sep)
ms = info['FileVersionMS']
ls = info['FileVersionLS']
version = '%d.%d.%d.%04d' % (win32api.HIWORD(ms), win32api.LOWORD(ms), win32api.HIWORD(ls), win32api.LOWORD(ls))
return version
file = r'C:\Program Files (x86)\360\360Safe\ipc\filemgr.dll'
result = compare(getFileVersion(file), '7.3.0.2421')
print(result)
本文为原创文章,撰写发布者:GSolaris,转载请注明出处:https://www.blissfulcandy.com/index.php/2023/07/19/pythoncompareversion/