首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python -如何识别docx文件中的分页符,以及如何在每个页面中创建文本列表

python -如何识别docx文件中的分页符,以及如何在每个页面中创建文本列表
EN

Stack Overflow用户
提问于 2018-08-08 05:39:11
回答 1查看 794关注 0票数 1

我有以下代码来拆分docx文件的每个段落并附加到一个列表中,但是我需要识别xml树结构中的分页符,并为每个页面创建一个文本列表。如果有帮助的话,我很乐意提供确切的名称空间:

xml_content = document.read('word/document.xml')
tree = XML(xml_content)
aggText = []
#tree.getiterator method looks at previously defined word namespaces
for paragraph in tree.getiterator(PARA):
     texts = [node.text
             for node in paragraph.getiterator(TEXT)
             if node.text]
     if texts:
        aggText.append(''.join(texts))

我设想更新后的循环将如下所示,但不确定在xml树结构中定位分页符:

aggText = []
for paragraph in tree.getiterator(PARA):
     texts = [node.text
             for node in paragraph.getiterator(TEXT)
             if node.text]
     #page breaks in xml read 'w:lastRenderedPageBreak'
     #below doesn't work, need a way to search raw xml for the page break identifier
     if texts.count(lastRenderedPageBreak) > 0:
        pages = aggText.append(''.join(texts))
        texts = []

任何想法都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2018-08-09 21:41:55

解决方案如下,我还更新了迭代器函数,因为getiterator()现在已被弃用。

NAMESPACE = 
'{http://schemas.openxmlformats.org/wordprocessingml/2006/main}'
pages = []
PARA = NAMESPACE + 'p'
TEXT = NAMESPACE + 't'
PAGE = NAMESPACE + 'lastRenderedPageBreak'
aggText = ''
for paragraph in tree.iter(PARA):
     aggText += ''.join([node.text
             for node in paragraph.iter(TEXT)
             if node.text])
     if aggText and [node for node in paragraph.iter(PAGE):
        pages.append(aggText)
        aggText = ''
if aggText != '':
     pages.append(aggText)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51735794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档