📜  使用Python获取应用程序版本

📅  最后修改于: 2022-05-13 01:54:25.876000             🧑  作者: Mango

使用Python获取应用程序版本

软件版本控制可能是由于对PC软件包的独特状态进行推理,因为它是开发和发布的。版本符号通常是一个词、一个数字或两者兼而有之。例如,版本 1.0 通常习惯于表示程序的初始 unharness。在本文中,我们将看到如何使用Python获取应用程序版本号。

方法一:这里会用到win32api模块。

适用于 Microsoft Windows 的Python扩展 提供对大量 Win32 API 的访问、创建和使用 COM 对象的灵活性,以及 Pythonwin 氛围。

在开始之前,我们需要安装模块

pip install pywin32

这里我们将使用这些方法:

  • GetFileVersionInfo:此方法用于检索给定文件的版本信息
GetFileVersionInfo(File Path, SubBlock, **attr)
  • LOWORD: win32api LOWORD 宏的接口。值为整数数据类型
LOWORD(val)
  • HIWORD: win32api HIWORD 宏的接口。值为整数数据类型
HIWORD(val)

方法:

  • 首先我们将使用 GetFileVersionInfo() 方法解析文件信息。
  • 文件信息是字典的形式,我们会获取两个信息,一个是msfileversion,另一个是lsfileversion

下面是实现:

Python3
# Import Module
from win32api import *
  
def get_version_number(file_path):
  
    File_information = GetFileVersionInfo(file_path, "\\")
  
    ms_file_version = File_information['FileVersionMS']
    ls_file_version = File_information['FileVersionLS']
  
    return [str(HIWORD(ms_file_version)), str(LOWORD(ms_file_version)),
            str(HIWORD(ls_file_version)), str(LOWORD(ls_file_version))]
  
file_path = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
  
version = ".".join(get_version_number(file_path))
  
print(version)


Python3
# Import Module
from win32com.client import *
  
def get_version_number(file_path):
  
    information_parser = Dispatch("Scripting.FileSystemObject")
    version = information_parser.GetFileVersion(file_path)
    return version
  
file_path = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
version = get_version_number(file_path)
  
print(version)


输出:

88.0.4324.104

方法二:使用win32com

这里将使用 win32com 模块。在开始之前,我们需要安装模块

pip install pypiwin32

方法:

  • 我们将创建一个信息解析器,它将使用 Dispatch() 方法解析所需的信息。
  • 然后我们将使用 GetFileVersion() 方法获取文件版本。

下面是实现:

蟒蛇3

# Import Module
from win32com.client import *
  
def get_version_number(file_path):
  
    information_parser = Dispatch("Scripting.FileSystemObject")
    version = information_parser.GetFileVersion(file_path)
    return version
  
file_path = r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe'
version = get_version_number(file_path)
  
print(version)

输出:

88.0.4324.104