import win32api

def getFileProperties(fname):
"""
读取给定文件的所有属性, 返回一个字典.
"""
propNames = ('Comments', 'InternalName', 'ProductName',
'CompanyName', 'LegalCopyright', 'ProductVersion',
'FileDescription', 'LegalTrademarks', 'PrivateBuild',
'FileVersion', 'OriginalFilename', 'SpecialBuild') props = {'FixedFileInfo': None, 'StringFileInfo': None, 'FileVersion': None} try:
fixedInfo = win32api.GetFileVersionInfo(fname, '\\')
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(fname, '\\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(fname, strInfoPath) props['StringFileInfo'] = strInfo
except:
pass return props if __name__ = "__main__":
  getFileProperties(./python.exe)

  

https://stackoverflow.com/a/7993095/2615376

查看python.exe返回:

>>> pprint(getFileProperties(path))
{'FileVersion': '3.6.2150.1013',
'FixedFileInfo': {'FileDate': None,
'FileFlags': 0,
'FileFlagsMask': 63,
'FileOS': 4,
'FileSubtype': 0,
'FileType': 1,
'FileVersionLS': 140903413,
'FileVersionMS': 196614,
'ProductVersionLS': 140903413,
'ProductVersionMS': 196614,
'Signature': -17890115,
'StrucVersion': 65536},
'StringFileInfo': {'Comments': None,
'CompanyName': 'Python Software Foundation',
'FileDescription': 'Python',
'FileVersion': '3.6.2',
'InternalName': 'Python Console',
'LegalCopyright': 'Copyright © 2001-2016 Python Software '
'Foundation. Copyright © 2000 '
'BeOpen.com. Copyright © 1995-2001 CNRI. ' 'Copyright © 1991-1995 SMC.',
'LegalTrademarks': None,
'OriginalFilename': 'python.exe',
'PrivateBuild': None,
'ProductName': 'Python',
'ProductVersion': '3.6.2',
'SpecialBuild': None}}
>>>

  

[Python]获取win平台文件的详细信息的更多相关文章

  1. [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作

    [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作 转载请注明出处 一.关于为什么用pymediainfo以及pymediainfo的安装 使用python对视频/音频文件进行详 ...

  2. python3获取指定目录内容的详细信息

    不同平台获取指定目录内容的详细信息命令各不相同: Linux中可以通过ls -al获取获取 windows中可以通过dir命令获取 下面是我写的一个通用获取目录内容详细信息的python3脚本: #! ...

  3. iOS - 获取音视频文件的Metadata信息

    // // MusicInfoArray.h // LocationMusic // // Created by Wengrp on 2017/6/22. // Copyright © 2017年 W ...

  4. Python获取服务器的厂商和型号信息-乾颐堂

    Python获取服务器的厂商和型号信息,在RHEHL6下,需要系统预装python-dmidecode这个包(貌似默认就已经装过了) 脚本内容如下 [root@linuxidc tmp]# cat t ...

  5. 利用python获取自己的qq群成员信息

    利用python获取自己的qq群成员信息! 首先说明一下需要使用的工具以及技术:python3 + selenium selenium安装方法:pip install selenium 前提:获取自己 ...

  6. Linux:査看文件的详细信息

    Linux中stat是査看文件详细信息的命令. 1.命令格式: stat [选项] 文件名/目录名 2.选项: -f:査看文件所在文件系统信息,而不是査看文件信息. 3. 案例 案例1:査看文件的详细 ...

  7. Python获取目录、文件的注意事项

    Python获取指定路径下的子目录和文件有两种方法: os.listdir(dir)和os.walk(dir),前者列出dir目录下的所有直接子目录和文件的名称(均不包含完整路径),如 >> ...

  8. python爬取豌豆荚中的详细信息并存储到SQL Server中

    买了本书<精通Python网络爬虫>,看完了第6章,我感觉我好像可以干点什么:学的不多,其中的笔记我放到了GitHub上:https://github.com/NSGUF/PythonLe ...

  9. VS设置程序集属性(文件的详细信息)

    适用范围 本文方法适用于:C#创建的控制台程序,WinForm,WPF等VS创建的.Net工程信息设置. 方法步骤 1.在 项目 上点击鼠标右键选择 属性 ,进入这个页面,点击 程序集信息(重点关注 ...

随机推荐

  1. c语言中自定义bool类型模板

    首先,c语言中没有bool类型,只有c++中有,所以需要自定义,即c中表示bool类型的方法: 1.模板1 typedef int bool; #define false 0 #define true ...

  2. SpringBoot 2.X整合Mybatis

    1.创建工程环境 勾选Web.Mybatis.MySQL,如下 依赖如下 <dependency> <groupId>org.springframework.boot</ ...

  3. spark(1.1) mllib 源码分析(三)-决策树

    本文主要以mllib 1.1版本为基础,分析决策树的基本原理与源码 一.基本原理 二.源码分析 1.决策树构造 指定决策树训练数据集与策略(Strategy)通过train函数就能得到决策树模型Dec ...

  4. 使用tushare 库查阅交易日历

    资料参考:https://tushare.pro/ 交易日历 接口:trade_cal描述:获取各大交易所交易日历数据,默认提取的是上交所 tushare的版本和更新: 执行命令: pip insta ...

  5. ubuntu pycharm、idea创建快捷方式

    编辑/usr/share/application/pycharm.desktop [Desktop Entry] Type=Application Name=Pycharm GenericName=P ...

  6. 蒙蔽的FormBody

    作为一个不算新人的新人,今天看到 了FormBody这个绿色字体,之前没有怎么注意过, 好了 ,发现了一篇文章,记录下. 这篇文章总结下来就是: 在前端穿过的数据是Json格式(当我们设置Conten ...

  7. AVR单片机教程——定时器中断

    本文隶属于AVR单片机教程系列.   中断,是单片机的精华. 中断基础 当一个事件发生时,CPU会停止当前执行的代码,转而处理这个事件,这就是一个中断.触发中断的事件成为中断源,处理事件的函数称为中断 ...

  8. MVEL2.0的使用实例(一)

    本文是对java整合mvel2.0的一点示例: 如果表达式中有变量,解析表达式时必须传一个map MVEL.eval(expression, vars); /** * 基本解析表达式 */@Testp ...

  9. [bzoj4872] [洛谷P3750] [六省联考2017] 分手是祝愿

    Description Zeit und Raum trennen dich und mich. 时空将你我分开. \(B\) 君在玩一个游戏,这个游戏由 \(n\) 个灯和 \(n\) 个开关组成, ...

  10. HashMap在JDK7和JDK8中的区别

    在[深入浅出集合Map]中,已讲述了HashMap在jdk7中实现,在此就不再细说了 JDK7中的HashMap 基于链表+数组实现,底层维护一个Entry数组 Entry<K,V>[]  ...