#!/usr/bin/python
"""Get file version.
Written by Alexander Belchenko, 2006
"""
import os
import pywintypes # from pywin32 (http://pywin32.sf.net)
import win32api # from pywin32 (http://pywin32.sf.net)
__all__ = ['get_file_version', 'FileNotFound', 'VersionNotAvailable']
__docformat__ = "restructuredtext"
class FileNotFound(Exception):
pass
class VersionNotAvailable(Exception):
pass
def get_file_version(filename):
"""Get file version (windows properties)
:param filename: path to file
:return: 4-tuple with 4 version numbers
"""
if not os.path.isfile(filename):
raise FileNotFound
try:
version_info = win32api.GetFileVersionInfo(filename, '\\')
except pywintypes.error:
raise VersionNotAvailable
return (divmod(version_info['FileVersionMS'], 65536) +
divmod(version_info['FileVersionLS'], 65536))
|