在Ubuntu中使用python获取与文件关联的元数据列表

我试图在Ubuntu中使用python获取与文件关联的元数据列表。

不使用python,命令“提取”工作得很好,但我不知道如何使用python,我总是会得到一个消息,说“提取”没有定义。

我假设你问的是在“摘要”选项卡下的Windows“属性”对话框中显示的元数据。 (如果没有,只是无视这一点。)以下是我如何管理它。

  1. 下载并安装Python win32扩展 。 这将把win32,win32com等放到你的Python [ver] / Lib / site-packages文件夹中。 这些带来了win32api,win32com,等等。出于某种原因,我不能让版本的Python 2.6(建立216)工作。 我更新了我的系统到Python 2.7,并使用Python 2.7的构建,它的工作。 (要下载和安装,请点击上面的链接,点击链接阅读'pywin32',点击最新版本的链接(目前是216),点击与你的系统和Python安装相匹配的.exe文件的链接(对于我来说,它是pywin32-216.win32-py2.7.exe )运行.exe文件。)
  2. Tim Golden的教程中的“ 获取文档摘要信息 ”页面中的代码复制并粘贴到您自己的计算机上的.py文件中。
  3. 调整代码 。 你并不需要调整代码,但是如果你把这个Tim的脚本作为你的主模块运行,并且如果你不提供一个路径名作为你的第一个sys.argv,那么你会得到一个错误。 为了进行调整,向下滚动到代码的底部,并省略最后一个块,它以if __name__ == '__main__':开头。

保存你的文件,如property_reader.py ,并调用它的property_sets(filepath)方法。 这个方法返回一个生成器对象。 您可以遍历生成器来查看所有属性及其值。 你可以像这样实现它:

 # Assuming 'property_reader.py' is the name of the module/file in which you saved Tim Golden's code... import property_reader propgenerator = property_reader.property_sets('[your file path]') for name, properties in propgenerator: print name for k, v in properties.items (): print " ", k, "=>", v 

上述代码的输出将如下所示:

 DocSummaryInformation PIDDSI_CATEGORY => qux SummaryInformation PIDSI_TITLE => foo PIDSI_COMMENTS => flam PIDSI_AUTHOR => baz PIDSI_KEYWORDS => flim PIDSI_SUBJECT => bar 

extract基于libextractor库。 您可以通过在Ubuntu上安装python-extractor包来从Python访问库。

如果你使用Windows,你的问题已经被解决了。