1. import win32api
  2.  
  3. def getFileProperties(fname):
  4. """
  5. 读取给定文件的所有属性, 返回一个字典.
  6. """
  7. propNames = ('Comments', 'InternalName', 'ProductName',
  8. 'CompanyName', 'LegalCopyright', 'ProductVersion',
  9. 'FileDescription', 'LegalTrademarks', 'PrivateBuild',
  10. 'FileVersion', 'OriginalFilename', 'SpecialBuild')
  11.  
  12. props = {'FixedFileInfo': None, 'StringFileInfo': None, 'FileVersion': None}
  13.  
  14. try:
  15. fixedInfo = win32api.GetFileVersionInfo(fname, '\\')
  16. props['FixedFileInfo'] = fixedInfo
  17. props['FileVersion'] = "%d.%d.%d.%d" % (fixedInfo['FileVersionMS'] / 65536,
  18. fixedInfo['FileVersionMS'] % 65536, fixedInfo['FileVersionLS'] / 65536,
  19. fixedInfo['FileVersionLS'] % 65536)
  20.  
  21. # \VarFileInfo\Translation returns list of available (language, codepage)
  22. # pairs that can be used to retreive string info. We are using only the first pair.
  23. lang, codepage = win32api.GetFileVersionInfo(fname, '\\VarFileInfo\\Translation')[0]
  24.  
  25. # any other must be of the form \StringfileInfo\%04X%04X\parm_name, middle
  26. # two are language/codepage pair returned from above
  27.  
  28. strInfo = {}
  29. for propName in propNames:
  30. strInfoPath = u'\\StringFileInfo\\%04X%04X\\%s' % (lang, codepage, propName)
  31. ## print str_info
  32. strInfo[propName] = win32api.GetFileVersionInfo(fname, strInfoPath)
  33.  
  34. props['StringFileInfo'] = strInfo
  35. except:
  36. pass
  37.  
  38. return props
  39.  
  40. if __name__ = "__main__":
  41.   getFileProperties(./python.exe)

  

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

查看python.exe返回:

  1. >>> pprint(getFileProperties(path))
  2. {'FileVersion': '3.6.2150.1013',
  3. 'FixedFileInfo': {'FileDate': None,
  4. 'FileFlags': 0,
  5. 'FileFlagsMask': 63,
  6. 'FileOS': 4,
  7. 'FileSubtype': 0,
  8. 'FileType': 1,
  9. 'FileVersionLS': 140903413,
  10. 'FileVersionMS': 196614,
  11. 'ProductVersionLS': 140903413,
  12. 'ProductVersionMS': 196614,
  13. 'Signature': -17890115,
  14. 'StrucVersion': 65536},
  15. 'StringFileInfo': {'Comments': None,
  16. 'CompanyName': 'Python Software Foundation',
  17. 'FileDescription': 'Python',
  18. 'FileVersion': '3.6.2',
  19. 'InternalName': 'Python Console',
  20. 'LegalCopyright': 'Copyright © 2001-2016 Python Software '
  21. 'Foundation. Copyright © 2000 '
  22. 'BeOpen.com. Copyright © 1995-2001 CNRI. '
  23.  
  24. 'Copyright © 1991-1995 SMC.',
  25. 'LegalTrademarks': None,
  26. 'OriginalFilename': 'python.exe',
  27. 'PrivateBuild': None,
  28. 'ProductName': 'Python',
  29. 'ProductVersion': '3.6.2',
  30. 'SpecialBuild': None}}
  31. >>>

  

[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. Oracle基础之保留字和关键字

    Oracle基础之保留字和关键字 在Oracle之中,有分为保留字和关键字,所谓关键字就是Oracle中有实际意义的,而保留字(比如DESC.ORDER等等)是Oracle中不能随便使用的,比如不能随 ...

  2. leetcode腾讯精选练习之两数相加

    两数相加 题目: 给出两个非空的链表用来表示两个非负的整数.其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字.如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们 ...

  3. 【记】创建 VirtualBoxClient COM 对象失败. 应用程序将被中断

    1. 在本地64位win7系统安装VirtualBox完,启动时提示错误 原因:兼容性造成的 按照下图显示修改VirtualBox快捷方式的兼容性 2. 启动虚拟机时,提示 点击弹出框的确定按钮后,接 ...

  4. VLC播放器的快捷键(shutcut)

    ubuntu上的视频播放器功能简陋,不支持快慢速,于是需要一款播放器来替代它,从网上找了找,大家对VLC的评价出奇的一致, 于是试水了一下,发现功能确实强大,支持大多数多媒体文件以及各类流媒体协议 在 ...

  5. 3maven常用命令和配置依赖

    依赖: 例:spring-context.jar 依赖 spring-aop.jar... A中的某些类 需要使用B中的某些类,则称为A依赖于B 在maven项目中,如果要使用 一个当时存在的Jar或 ...

  6. 【5min+】闪电光速拳? .NetCore 中的Span

    系列介绍 简介 [五分钟的DotNet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的. ...

  7. MySQL/数据库 知识点总结

    书籍推荐 <SQL基础教程(第2版)> (入门级) <高性能MySQL : 第3版> (进阶) 文字教程推荐 SQL Tutorial (SQL语句学习,英文).SQL Tut ...

  8. 来自PTA Basic Level的三只小野兽

    点我阅读原文 最近利用闲暇时间做了一下 PTA Basic Level[1] 里的题,里面现在一共有 95 道题,这些题大部分很基础,对于刷倦了 leetcode 的小伙伴可以去里面愉快的玩耍哦. 这 ...

  9. struts2 convention插件

    1.struts2自2.1以后推荐使用Convention Plugin支持struts零配置支持(引入jar:struts2-convention-plugin-2.x.x.jar)①convent ...

  10. Nginx配置不同端口号映射二级域名

    upstream xx{ #ip_hash; server 127.0.0.1:1008; } server { listen 80; server_name xx.xxx.com; location ...