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使用zip合并相邻列表项的方法示例
Mar 17 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
python实现AES加密解密
Mar 28 Python
Python实现账号密码输错三次即锁定功能简单示例
Mar 29 Python
python实现微信自动回复及批量添加好友功能
Jul 03 Python
Python绘制频率分布直方图的示例
Jul 08 Python
python for循环remove同一个list过程解析
Aug 14 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
PyQt5通过信号实现MVC的示例
Feb 06 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
[原创]效率较高的php下读取文本文件的代码
2008/07/02 PHP
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
JS运行耗时操作的延时显示方法
2010/11/19 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
javascript中alert()与console.log()的区别
2015/08/26 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
JS正则表达式之非捕获分组用法实例分析
2016/12/28 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
Python中for循环和while循环的基本使用方法
2015/08/21 Python
在Django中进行用户注册和邮箱验证的方法
2016/05/09 Python
Python+Wordpress制作小说站
2017/04/14 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
python定时关机小脚本
2018/06/20 Python
对python插入数据库和生成插入sql的示例讲解
2018/11/14 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
基于pandas中expand的作用详解
2019/12/17 Python
基于python实现上传文件到OSS代码实例
2020/05/09 Python
python 实现性别识别
2020/11/21 Python
什么是Assembly(程序集)
2014/09/14 面试题
国际贸易本科毕业生求职信
2014/09/26 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
电影焦裕禄观后感
2015/06/09 职场文书
2016情人节宣传语
2015/07/14 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server