Where Is The Word/_rels/document.xml.rels In Python Docx Object?
I need the content of word/_rels/document.xml.rels to get the image infomation. Does python-docx store it? I use this: >>> from docx import Document as d >>> x=
Solution 1:
python-docx and python-pptx share a common opc subpackage; this is the docx.opc subpackage.
This layer abstracts the details of the .rels files, among other things.
You can get to it using:
>>>document = Document()>>>document_part = document.part>>>rels = document_part.rels>>>for r in rels:...print r.rId
'rId2'
'rId1'
'rId3'
How you use it most effectively depends on what you're trying to get at. Usually one just wants to get a related part and doesn't care about navigating the details of the packaging. For that there are these higher level methods:
- docx.opc.part.Part.part_related_by()
- docx.opc.part.Part.related_parts[rId]
In general the route from the object at hand is:
- to the part it's contained in (often available on obj.part)
- to the related part by use of .part_related_by() (using relationship type) or .related_parts[rId] (it's a dict).
- back down the the API object via X_Part.main_obj e.g. DocumentPart.document
The areas in the code you might be interested in looking closer at are:
- docx/parts/
- docx/opc/part.py
Post a Comment for "Where Is The Word/_rels/document.xml.rels In Python Docx Object?"