Python比较2个文件的版本大小

脚本说明

  1. Python,使用【win32api】库,比较2个Windows系统文件的【版本号】大小

示例代码

# 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/

(0)
GSolarisGSolaris

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

微信联系
关注公众号