我构建了一个脚本,可以修改导入的单词文件中的某些单词。
from docx import Document
document = Document('filename.docx')
paragraphs = document.paragraphs
dic = {'XxwordxX': modifiedword}
for p in document.paragraphs:
for key in dic.keys():
if key in p.text:
p.text = p.text.replace(key,dic[key])
document.save('new.docx')
不幸的是,修改该单词的段落不再是粗体(在文件名
中是粗体)。
我找不到如何再次将其加粗。
我尝试过这个:
from docx import Document
document = Document('filename.docx')
paragraphs = document.paragraphs
dic = {'XxwordxX': modifiedword}
for p in document.paragraphs:
for key in dic.keys():
if key in p.text:
p.text = p.text.replace(key,dic[key])
para = document.paragraphs[2]
run.bold = True
document.save('new.docx')
但即使我没有任何错误,该段落在输出中也不是粗体。
有什么想法可以做到吗?我在互联网上找到的唯一提示是手动添加粗体段落。
最佳答案
我认为您正在寻找类似于 paragraph_replace_text()
函数的解决方案:
https://github.com/python-openxml/python-docx/issues/30#issuecomment-879593691
问题在于,替换 Paragraph.text
会删除段落中的所有运行,并将它们替换为具有默认格式的单个段落。这通常很方便,但在“保留格式的同时替换文本”的情况下还不够。
有关该代码片段的文档非常详尽,并且该代码片段后面的注释提供了一些进一步的解释。您可能需要调整 paragraph_replace_text()
函数以适合您的用例,因此最好足够仔细地研究它,以了解其基本工作原理。
关于python - 如何在 python docx 中将修改的段落加粗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69710352/