python docx 对象中的 word/_rels/document.xml.rels 在哪里?

where is the word/_rels/document.xml.rels in python docx object?

我需要word/_rels/document.xml.rels的内容来获取图像信息。 python-docx 是否存储它?

我用这个:

>>> from docx import Document as d
>>> x=d('a.docx')

似乎无法在 x 对象中获取它。

python-docx 和 python-pptx 共享一个通用的 opc 子包;这是 docx.opc 子包。

该层抽象了 .rels 文件的详细信息等。

您可以使用:

>>> document = Document()
>>> document_part = document.part
>>> rels = document_part.rels
>>> for r in rels:
...   print r.rId
'rId2'
'rId1'
'rId3'

如何最有效地使用它取决于您想要达到的目的。通常人们只想得到一个相关的部分,而不关心浏览包装的细节。为此,有这些更高级别的方法:

  • docx.opc.part.Part.part_related_by()
  • docx.opc.part.Part.related_parts[rId]

一般来说,从手头的物体出发的路线是:

  1. 它包含的部分(通常在 obj.part 上可用)
  2. 通过使用 .part_related_by() (使用关系类型)或 .related_parts[rId] (这是一个字典)到相关部分。
  3. 通过 X_Part.main_obj 返回 API 对象,例如DocumentPart.document

您可能有兴趣仔细研究的代码区域是:

  • docx/parts/
  • docx/opc/part.py