使用python docx访问其他段落样式属性

使用python docx访问其他段落样式属性,python,python-docx,Python,Python Docx,我试图使用PythonDocx解析Word文档,但在获取正确的段落样式时遇到了困难。我已将该文件的简化版本上载到。 文档的“普通”样式使用“Garamont”字体,但这一点已更改,因此我在文件中单击的每一处,字体都是“Calibri(Body)” 当我在Word的第一行使用“样式检查器”时,它显示:“段落格式”是正常的+加:居中,左:0厘米,在:0点之前,“文本级格式”是默认段落字体+加:+Body(Calibri),14点,粗体,下划线 当我对表中的非粗体文本执行相同操作时,我得到:“段落格式

我试图使用PythonDocx解析Word文档,但在获取正确的段落样式时遇到了困难。我已将该文件的简化版本上载到。 文档的“普通”样式使用“Garamont”字体,但这一点已更改,因此我在文件中单击的每一处,字体都是“Calibri(Body)”

当我在Word的第一行使用“样式检查器”时,它显示:“段落格式”是
正常的
+
加:居中,左:0厘米,在:0点之前
,“文本级格式”是
默认段落字体
+
加:+Body(Calibri),14点,粗体,下划线

当我对表中的非粗体文本执行相同操作时,我得到:“段落格式”是
正常的
+
加:+Body(Calibri),在:0 pt
之前,“文本级格式”是
默认段落字体
+
加:

也就是说,字体在表内外的不同级别上发生更改。但是,在这两种情况下,我都不知道如何使用python docx获取此信息:

导入docx
doc=docx.Document('test.docx')
PAR=doc段落〔0〕
#par=文件表格[0]。单元格(0,1)。段落[0]
打印(f“{par.style.name}”)
打印(f“{par.style.font.name}”)
打印(f“{par.runs[0].font.name}”)
打印(f“{par.runs[0].style.name}”)
打印(f“{par.runs[0].style.font.name}”)
c=doc.tables[0]。单元格(1,0)
C段中的PAR:
打印(f“{len(par.runs)}”,结束=”)
c、 段落[0]。添加\u运行(“非常短的摘要”)
文档保存('test_ed.docx'))
返回

'Normal'
'Garamond'
'None'
'Default Paragraph Font'
'None'
1 0 0 0 0 0 0 0 0 1
换句话说,我看不到文档实际使用Calibri字体的任何迹象。 如果使用第二个
par
定义(从表中),则返回的结果完全相同

此外,从结果来看,添加的行使用“Garamont”,即使Word将其他空段落显示为使用“Calibri(Body)”


因此,我的问题是如何检测文本的实际格式,以及如何将其复制到新段落?

您能否添加读取段落样式的演示代码(完整且可运行,但精简)?这会让别人更容易帮助你,也会让这个问题对未来的读者更有用。我们可以自己提供的Word文件,我想:-)@alexis我现在已经重写了这个问题,并将文件上传到Dropbox