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中open函数的使用
Mar 01 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
tf.truncated_normal与tf.random_normal的详细用法
Mar 05 Python
python实现冒泡排序算法的两种方法
Mar 10 Python
Python操作MySQL模拟银行转账
Mar 12 Python
Python3实现的字典遍历操作详解
Apr 18 Python
查看django版本的方法分享
May 14 Python
python 自动批量打开网页的示例
Feb 21 Python
Django中使用session保持用户登陆连接的例子
Aug 06 Python
redis数据库及与python交互用法简单示例
Nov 01 Python
解决windows上安装tensorflow时报错,“DLL load failed: 找不到指定的模块”的问题
May 20 Python
Python浮点型(float)运算结果不正确的解决方案
Sep 22 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+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
Jquery在IE7下无法使用 $.ajax解决方法
2009/11/11 Javascript
修改jQuery Validation里默认的验证方法
2012/02/14 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
js实现简单随机抽奖的方法
2015/01/27 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
Vue.js组件tree实现省市多级联动
2016/12/02 Javascript
js 判断数据类型的几种方法
2017/01/13 Javascript
详解用node.js实现简单的反向代理
2017/06/26 Javascript
Angular2关于@angular/cli默认端口号配置的问题
2017/07/15 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
vue axios请求拦截实例代码
2018/03/29 Javascript
详解redis在nodejs中的应用
2018/05/02 NodeJs
关于vue 结合原生js 解决echarts resize问题
2020/07/26 Javascript
八种Vue组件间通讯方式合集(推荐)
2020/08/18 Javascript
[05:26]2014DOTA2西雅图国际邀请赛 iG战队巡礼
2014/07/07 DOTA
python编写爬虫小程序
2015/05/14 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
PyCharm在win10的64位系统安装实例
2017/11/26 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
python+Django实现防止SQL注入的办法
2019/10/31 Python
Python属性和内建属性实例解析
2020/01/14 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
2020/07/03 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
英语教研活动总结
2014/07/02 职场文书
班主任远程培训研修日志
2015/11/13 职场文书