我正在使用python-docx 0.8.6和python 3.6来执行简单的搜索/替换操作。
我遇到的问题是,在迭代doc.paragraphs时,并不会显示所有文档的文本
为了调试,我试过了
doc = Document(input_file)
fullText = []
for para in doc.paragraphs:
fullText.append(para.text)
print('\n'.join(fullText))
只打印了大约一半文件的内容。
文件中没有表格或特殊格式。有没有理由为什么python-docx无法读取这么多文档的内容?
编辑:如果存在任何差异,则缺少的文字包含在邮件合并字段中
答案 0 :(得分:2)
邮件合并字段确实有所作为。遗憾的是,python-docx
不够复杂,无法知道哪些“容器”元素包含可显示的文本,哪些不包含。所以它只报告处于“顶级”级别的段落(和表格)。
这也是一个限制,例如,它有两个或多个文本,其中只有一个出现,具体取决于修订标记设置(显示原始,显示编辑后的最新等)
使用python-docx
绕过它的唯一方法是自己导航XML,尽管python-docx
中的某些域对象可以很方便,例如Paragraph
等等。掌握了你想要的元素。