获取Python中exe的完整文件版本

2024-10-03 02:45:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有一种简单的方法可以获取python中exe的完整文件版本(例如,如果右键单击文件的属性并转到详细信息,您会发现类似于文件版本1.1.1.0

我通过使用win32api.GetFileVersionInfo发现了一些相似之处,但是当列出文件属性时,在FileVersionLS下,它似乎只给出了一个数字,即文件版本的最右边的数字(因此在上面的示例中,它给出了1.1.1.0中的0),而我需要整个版本号

希望这是有道理的,请让我知道,如果有什么我需要详细说明

谢谢你的阅读


Tags: 文件方法版本示例属性版本号详细信息数字
1条回答
网友
1楼 · 发布于 2024-10-03 02:45:08

FileVersionLSFileVersionMS共同作用,将完整的版本号表示为64位整数:

dwFileVersionMS

Type: DWORD

The most significant 32 bits of the file's binary version number. This member is used with dwFileVersionLS to form a 64-bit value used for numeric comparisons.

dwFileVersionLS

Type: DWORD

The least significant 32 bits of the file's binary version number. This member is used with dwFileVersionMS to form a 64-bit value used for numeric comparisons.

它们每一位都有两个16位的数字,所以你必须将单个数字进行位移位。您可以使用win32api.LOWORD()win32api.HIWORD()来实现此目的,例如:

def get_file_version(self, path):
    info = win32api.GetFileVersionInfo(path, '\\')
    ms = info['FileVersionMS']
    ls = info['FileVersionLS']
    return (win32api.HIWORD(ms), win32api.LOWORD(ms),
            win32api.HIWORD(ls), win32api.LOWORD(ls)) 

相关问题 更多 >