Python中的OLE复合文档
你怎么用Python来解析一个微软的OLE复合文档呢?
补充:抱歉,我忘了说我还需要写的功能……简单来说,我有一个OLE复合文件,我需要读取它,稍微修改一下,然后再写回到磁盘上(这个文件是用CAD应用程序制作的)。
3 个回答
0
为了完整性说明一下:在Linux系统上,还有一个叫做GNOME结构化文件库的东西(不过在Debian/Ubuntu的默认安装包中,Python支持是关闭的,因为Python的接口从2006年起就不再支持了),还有一个POIFS的Java库。
2
另外一种选择是:xlrd这个包可以用来读取文件,而xlwt这个包(是pyExcelerator的一个分支)可以用来写入文件。这些工具可以轻松处理几百MB大小的文件,已经被广泛使用了大约4年。它们的复合文档模块主要是为了尽可能高效地在Excel .xls文件中读写“工作簿”流,但也有一定的通用性。与OleFileIO_PL不同的是,它们无法访问属性流的内部内容。
http://pypi.python.org/pypi/xlrd
http://pypi.python.org/pypi/xlwt
如果你决定使用这些工具并需要帮助,可以在这个论坛提问:
http://groups.google.com/group/python-excel
3
我刚发现了一个叫 OleFileIO_PL 的工具,不过它之前不支持写入.. :/ 不过从0.40版本(2014年)开始,它支持写入了。
补充: 看起来有一种方法(不过只适用于Windows)也支持写入功能.. 这个方法是通过 pywin32 扩展实现的,里面有 StgOpenStorage 函数和相关内容。