到目前为止,我只成功地获得了使用此代码的版本。
from win32com.client import Dispatch
ver_parser = Dispatch('Scripting.FileSystemObject')
info = ver_parser.GetFileVersion(path + "\\" + file)现在,我所知道的就是"GetFileVersion“,我的集成开发环境不会自动完成向我显示任何其他选项来显示额外的其他信息
示例文件Properties>Details:

发布于 2018-07-12 17:32:06
我认为你可以使用"Shell.Application“来获取文件的meta information.Something,如下所示,替换文件夹名和文件名。
from win32com.client import Dispatch
shell = Dispatch("Shell.Application")
_dict = {}
# enter directory where your file is located
ns = shell.NameSpace("D:\\Userfiles\\Downloads")
for i in ns.Items():
# Check here with the specific filename
if str(i) == "Test.png":
for j in range(0,49):
_dict[ns.GetDetailsOf(j,j)] = ns.GetDetailsOf(i,j)
print _dict发布于 2018-07-12 15:37:12
根据this site的说法,您需要一个COM浏览器来查看哪些方法和属性是可用的。
对于一个非常基本的问题,请执行以下操作:
from win32com.client import combrowse
combrowse.main()发布于 2018-07-14 00:39:41
您可以使用win32com.client.gencache.EnsureDispatch生成与COM模块对应的Python代码。这样,您就可以使用__dir__访问所有方法的名称(并且很可能您的集成开发环境使用__dir__来自动完成代码,因此您也可以获得这些名称);
In [204]: from win32com.client.gencache import EnsureDispatch
In [205]: ver_parser = EnsureDispatch('Scripting.FileSystemObject')
In [210]: [a for a in ver_parser.__dir__() if '_' not in a]
Out[210]:
['CLSID',
'BuildPath',
'CopyFile',
'CopyFolder',
'CreateFolder',
'CreateTextFile',
'DeleteFile',
'DeleteFolder',
'DriveExists',
'FileExists',
'FolderExists',
'GetAbsolutePathName',
'GetBaseName',
'GetDrive',
'GetDriveName',
'GetExtensionName',
'GetFile',
'GetFileName',
'GetFileVersion',
'GetFolder',
'GetParentFolderName',
'GetSpecialFolder',
'GetStandardStream',
'GetTempName',
'MoveFile',
'MoveFolder',
'OpenTextFile']请注意,这只能获得方法的名称,而不能获得属性的名称(yet),但您可以手动获取这些名称:
In [213]: set(ver_parser._prop_map_get_).union(set(ver_parser._prop_map_put_))
Out[213]: {'Drives'}相关堆栈溢出问题:
https://stackoverflow.com/questions/51299026
复制相似问题