首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python获取有关文件Properties>Details的信息?

如何使用python获取有关文件Properties>Details的信息?
EN

Stack Overflow用户
提问于 2018-07-12 14:53:06
回答 3查看 3.8K关注 0票数 3

到目前为止,我只成功地获得了使用此代码的版本。

代码语言:javascript
复制
from win32com.client import Dispatch    
ver_parser = Dispatch('Scripting.FileSystemObject')
info = ver_parser.GetFileVersion(path + "\\" + file)

现在,我所知道的就是"GetFileVersion“,我的集成开发环境不会自动完成向我显示任何其他选项来显示额外的其他信息

示例文件Properties>Details:

EN

回答 3

Stack Overflow用户

发布于 2018-07-12 17:32:06

我认为你可以使用"Shell.Application“来获取文件的meta information.Something,如下所示,替换文件夹名和文件名。

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2018-07-12 15:37:12

根据this site的说法,您需要一个COM浏览器来查看哪些方法和属性是可用的。

对于一个非常基本的问题,请执行以下操作:

代码语言:javascript
复制
from win32com.client import combrowse
combrowse.main()
票数 0
EN

Stack Overflow用户

发布于 2018-07-14 00:39:41

您可以使用win32com.client.gencache.EnsureDispatch生成与COM模块对应的Python代码。这样,您就可以使用__dir__访问所有方法的名称(并且很可能您的集成开发环境使用__dir__来自动完成代码,因此您也可以获得这些名称);

代码语言:javascript
复制
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),但您可以手动获取这些名称:

代码语言:javascript
复制
In [213]: set(ver_parser._prop_map_get_).union(set(ver_parser._prop_map_put_))
Out[213]: {'Drives'}

相关堆栈溢出问题:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51299026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档