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的Django框架中的模版继承
Jul 16 Python
Python实现excel转sqlite的方法
Jul 17 Python
python微信公众号之关注公众号自动回复
Oct 25 Python
Python给定一个句子倒序输出单词以及字母的方法
Dec 20 Python
Python实现截取PDF文件中的几页代码实例
Mar 11 Python
python命令行参数用法实例分析
Jun 25 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
Python实现结构体代码实例
Feb 10 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
Python第三方库的几种安装方式(小结)
Apr 03 Python
如何基于pandas读取csv后合并两个股票
Sep 25 Python
CocosCreator ScrollView优化系列之分帧加载
Apr 14 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
mysql中存储过程、函数的一些问题
2007/02/14 PHP
php 执行系统命令的方法
2009/07/07 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
PHP时间函数使用详解
2019/03/21 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
javascript 兼容所有浏览器的DOM扩展功能
2012/08/01 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
JavaScript中闭包之浅析解读(必看篇)
2016/08/25 Javascript
JS重载实现方法分析
2016/12/16 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
vuejs父子组件之间数据交互详解
2017/08/09 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
在类Unix系统上开始Python3编程入门
2015/08/20 Python
聊聊Python中的pypy
2018/01/12 Python
Python使用Scrapy爬虫框架全站爬取图片并保存本地的实现代码
2018/03/04 Python
详解Django+uwsgi+Nginx上线最佳实战
2019/03/14 Python
Python控制Firefox方法总结
2019/06/03 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
FitFlop美国官网:英国符合人体工学的鞋类品牌
2018/10/05 全球购物
俄罗斯设计师家具购物网站:The Furnish
2019/12/01 全球购物
会计职业生涯规划书
2014/01/13 职场文书
计算机专业自荐信
2015/03/05 职场文书
政府会议通知范文
2015/04/15 职场文书
法定代表人免职证明
2015/06/24 职场文书
被委托人身份证明
2015/08/07 职场文书
用Python实现Newton插值法
2021/04/17 Python
Go语言基础知识点介绍
2021/07/04 Golang
使用python创建股票的时间序列可视化分析
2022/03/03 Python
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA