python 读取dll、exe文件版本终极方案

本文对比了使用win32api获取文件版本信息的局限性,并推荐了win32com作为更稳定的解决方案,展示了如何通过两种方式分别实现版本号查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上找到的大都是调用win32api,但是这个api很多dll识别失败了。

推荐使用wind32com,它兼容性比较强。

1.使用win32api

import os
import win32api


def getFileVersion(file_name):
    ''' 获取文件版本信息 '''
    info = win32api.GetFileVersionInfo(file_name, os.sep)
    ms = info['FileVersionMS']
    ls = info['FileVersionLS']
    version = '%d.%d.%d.%d' % (win32api.HIWORD(ms), win32api.LOWORD(ms), win32api.HIWORD(ls), win32api.LOWORD(ls))
    return version

2.使用win32com

from win32com.client import Dispatch


def get_version_number(file_path):
    ''' 获取文件版本信息,这个兼容性强 '''
    information_parser = Dispatch("Scripting.FileSystemObject")
    version = information_parser.GetFileVersion(file_path)
    return version

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值