python-docx - 替换字符

Posted

技术标签:

【中文标题】python-docx - 替换字符【英文标题】:python-docx - replacing characters 【发布时间】:2016-06-29 22:32:45 【问题描述】:

我正在尝试构建一个小程序,在其中我打开一个 docx 文档并用其他人替换字符,在检查文档后进行一些老式的凯撒式加密:[https://python-docx.readthedocs.io]恐怕我可以'找不到对象方法和属性,文档只是解释了如何做某些事情,比如创建段落和部分,但我在检索文档数据和解析方面找不到任何东西。我想在文档中找到一个对象列表,以便我可以解析它们。

我想做这样的事情:

from docx import Document
document = Document('essay.docx')

paragraph = []
for i in document:
    paragraph.append(i)

for i in paragraph:
    for y in i:
        y.replace("a", "y")

... 

python-docx 可以做这样的事情吗?如果是这样,我在哪里可以找到可以告诉我如何操作的文档?

如果我使用了不正确的库,如果您能指出,我也将不胜感激。

【问题讨论】:

【参考方案1】:

API 文档在您链接到的页面上编入索引(即显示其目录)并描述所有对象和方法。 https://python-docx.readthedocs.io/en/latest/#api-documentation

【讨论】:

是的,我也阅读了这些页面,我找到了诸如“add_paragraph()”和“add_run()”之类的方法,但我找不到诸如“get_paragraph()”之类的方法。我需要让对象解析并修改以创建一个新文件。也许这个库只适用于创建 docx 文档,而不适用于从中检索数据? 查看 Document 对象。我想你正在寻找Document.paragraphs 这似乎太难回答了,但您实际上可以解压缩 Word 文档,它会返回一个包含未格式化文本的文本文档。我对这个库不熟悉,但如果情况更糟,你可以使用一个实用程序来解压缩它,然后阅读文本,删除不需要的部分,然后使用这个库来构建你想要的文档。【参考方案2】:

我想我发现了一些有用的东西,以防未来的读者可能感兴趣。 python-docx 的问题是我可以单独获取段落,这需要很多时间。我什至不知道标题、页脚和页眉算不算段落。

但是有一个名为 textract 的库可以读取 docx 和其他文件,它与 python-docx 集成,或者至少这是简短文档所说的。但我能做的是将我的 docx 文件保存为 PDF 并使用:

text = textract.process(
    'path/to/norwegian.pdf',
    method='pdftofile',
    language='nor',
)

这使您可以将所有文本作为字符串保存并保留 pdf 的布局。还没有测试,如果它没有按预期工作,将编辑这篇文章。

http://textract.readthedocs.io/en/latest/python_package.html#python-package

【讨论】:

以上是关于python-docx - 替换字符的主要内容,如果未能解决你的问题,请参考以下文章

python-docx替换word文档中有格式文本

python-docx对替换后的文字设置英文字体中文字体字号大小对齐方式

说说 python-docx 解析 word 文档的原理

python-docx:打开文件时出错-“文件头的魔数错误”/“EOFError”

python操作word文档(python-docx)

Python如何操作word文档,Python-docx类库的使用