网上找到的大都是调用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