任何人都可以帮助我在Python中使用python-docx识别.docx文件中的段落是否包含使用删除线格式化的文本(即,它出现但是被划掉),或者在开头有一个项目符号点?我正在尝试编写一个脚本来识别文档中的结构并解析内容。
到目前为止,我能够读取.docx文件并迭代段落,识别粗体段落。
from docx import Document
document = Document(r'C:\stuff\Document.docx')
for p in document.paragraphs:
print p.text
for run in p.runs:
if run.bold:
print 'BOLD ' + run.text
其他人暂时不知道了。
答案 0 :(得分:0)
使用原生Word DocX解析器,而不是根据Python DocX Docs将其转换为HTML并使用HTML解析器:
from docx.enum.style import WD_STYLE_TYPE
styles = document.styles
paragraph_styles = [
s for s in styles if s.type == WD_STYLE_TYPE.PARAGRAPH
]
for style in paragraph_styles:
if style.name = 'List Bullet':
print "I'm a bullet"
答案 1 :(得分:0)
对于删除线,你可以像这样修改你的例子:
from docx import Document
document = Document(r'C:\stuff\Document.docx')
for p in document.paragraphs:
for run in p.runs:
if run.font.strike:
print "STRIKE: " + run.text
请参阅Font对象的API文档,了解更多有趣的内容。
答案 2 :(得分:-1)
根据mkrieger1的建议 - 我建议使用Pandoc将.docx转换为.html并从那里解析文档。
安装Pandoc与安装python-docx一样,从.docx到.html的转换就像使用Pandoc的魅力一样。在.html中,我正在解析的文档的结构以及所有格式元素都非常清晰,因此很容易使用。