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

时间:2011-01-03 11:27:28

标签: python ubuntu

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

不使用python,命令“extract”工作得很好,但我不知道如何在python中使用它,我总是收到一条消息,说“extract”没有定义。

3 个答案:

答案 0 :(得分:4)

我假设您询问“摘要”标签下Windows“属性”对话框中显示的元数据。 (如果没有,请忽略这一点。)以下是我如何管理它。

  1. 下载并安装Python win32 extensions这会将win32,win32com等放入您的Python [ver] / Lib / site-packages文件夹中。这些带来了win32api,win32com等等。出于某种原因,我无法获得Python 2.6(在构建216中)的版本。我将我的系统更新为Python 2.7,并使用216版本的Python 2.7,它工作正常。 (要下载和安装,请按照上面的链接,单击“pywin32”链接,单击最新版本的链接(当前为216),单击与您的系统和Python安装相匹配的.exe文件的链接(对我来说) ,它是pywin32-216.win32-py2.7.exe。。运行.exe文件。)
  2. 将代码从Tim Golden教程的“Get document summary information”页面复制并粘贴到您自己计算机上的.py文件中。
  3. 调整代码。你不必真正调整代码,但如果你将这个Tim的脚本作为主模块运行,并且如果你没有提供路径名作为你的第一个sys.argv,那么你将收到一个错误。要进行调整,请向下滚动到代码的底部,并省略以if __name__ == '__main__':开头的最后一个块。
  4. 将文件另存为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
    

答案 1 :(得分:1)

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

答案 2 :(得分:0)

如果您使用的是Windows,则问题已在SO上解决。