python获取文件版本信息、公司名和产品名的方法


Posted in Python onOctober 05, 2014

本文实例讲述了python获取文件版本信息、公司名和产品名的方法,分享给大家供大家参考。具体如下:

该python代码可得到文件版本信息、公司名和产品名。其他的信息都在返回的字典中。具体代码如下:

def _getCompanyNameAndProductName(self, file_path): 
    """ 
    Read all properties of the given file return them as a dictionary. 
    """ 
    propNames = ('Comments', 'InternalName', 'ProductName', 
      'CompanyName', 'LegalCopyright', 'ProductVersion', 
      'FileDescription', 'LegalTrademarks', 'PrivateBuild', 
      'FileVersion', 'OriginalFilename', 'SpecialBuild') 
   
    props = {'FixedFileInfo': None, 'StringFileInfo': None, 'FileVersion': None} 
   
    try: 
      # backslash as parm returns dictionary of numeric info corresponding to VS_FIXEDFILEINFO struc 
      fixedInfo = win32api.GetFileVersionInfo(file_path, '\\') 
      props['FixedFileInfo'] = fixedInfo 
      props['FileVersion'] = "%d.%d.%d.%d" % (fixedInfo['FileVersionMS'] / 65536, 
          fixedInfo['FileVersionMS'] % 65536, fixedInfo['FileVersionLS'] / 65536, 
          fixedInfo['FileVersionLS'] % 65536) 
   
      # \VarFileInfo\Translation returns list of available (language, codepage) 
      # pairs that can be used to retreive string info. We are using only the first pair. 
      lang, codepage = win32api.GetFileVersionInfo(file_path, '\\VarFileInfo\\Translation')[0] 
   
      # any other must be of the form \StringfileInfo\%04X%04X\parm_name, middle 
      # two are language/codepage pair returned from above 
   
      strInfo = {} 
      for propName in propNames: 
        strInfoPath = u'\\StringFileInfo\\%04X%04X\\%s' % (lang, codepage, propName) 
        ## print str_info 
        strInfo[propName] = win32api.GetFileVersionInfo(file_path, strInfoPath) 
   
      props['StringFileInfo'] = strInfo 
    except: 
      pass 
    if not props["StringFileInfo"]: 
      return (None, None) 
    else: 
      return (props["StringFileInfo"]["CompanName"], props["StringFileInfo"]["ProductName"])

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python 深入理解yield
Sep 06 Python
Python FTP操作类代码分享
May 13 Python
Python黑魔法@property装饰器的使用技巧解析
Jun 16 Python
利用 python 对目录下的文件进行过滤删除
Dec 27 Python
python如何将图片转换为字符图片
Aug 19 Python
python3读取csv和xlsx文件的实例
Jun 22 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
django连接mysql数据库及建表操作实例详解
Dec 10 Python
django模型类中,null=True,blank=True用法说明
Jul 09 Python
python 实现简易的记事本
Nov 30 Python
python实现调用其他python脚本的方法
Oct 05 #Python
跟老齐学Python之让人欢喜让人忧的迭代
Oct 02 #Python
跟老齐学Python之关于循环的小伎俩
Oct 02 #Python
跟老齐学Python之for循环语句
Oct 02 #Python
跟老齐学Python之用while来循环
Oct 02 #Python
跟老齐学Python之复习if语句
Oct 02 #Python
python中pycurl库的用法实例
Sep 30 #Python
You might like
第一个无线电台是由谁发明的
2021/03/01 无线电
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
PHP中使用php://input处理相同name值的表单数据
2015/02/03 PHP
PHP中调用C/C++制作的动态链接库的教程
2016/03/10 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
goto语法在PHP中的使用教程
2020/09/17 PHP
jquery ajax执行后台方法
2010/03/18 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
javascript中createElement的两种创建方式
2015/05/14 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
js中的面向对象入门
2017/03/06 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
[01:01:29]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第一场
2018/04/05 DOTA
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
Python实现简单状态框架的方法
2015/03/19 Python
python利用lxml读写xml格式的文件
2017/08/10 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
python开启debug模式的方法
2019/06/27 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
Python实现SMTP邮件发送
2020/06/16 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
上海雨人软件技术开发有限公司测试题
2015/07/14 面试题
母亲节感恩寄语
2014/02/21 职场文书
文明之星事迹材料
2014/05/09 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
Python游戏开发实例之graphics实现AI五子棋
2021/11/01 Python